如何用instagram滤镜,instagram特效使用教程
译者注:本文涉及图像处理,很有意思,可以用来搭建一个加云的手机拍照App。
教程详细信息
你将创作的最终作品
下载源文件
在本教程中,我将演示如何使用PHP和ImageMagick创建与Instagram相同效果的旧照片。是的,你可以用PHP和ImageMagick做到这一点,而且这只是最简单的事情!
我们创造旧的数码照片,然后让它们变酷。
从前——22年前(PHP出现前5年)ImageMagick诞生了。此后,它发展成为一个独立的软件平台,可以创建、编辑、生成或转换光栅图像(支持100多种格式!)。您可以使用它来调整图像大小,镜像图像,翻转,旋转,扭曲,剪切和转换图像,调整图像颜色,应用各种特殊效果,或绘制文本,线条,多边形,椭圆和贝塞尔曲线。它拥有您在Web开发中处理图像、视频和生成全景图所需的一切。但是请注意,它不是一个GUI图像编辑器。
ImageMagick是网络上的Photoshop命令行。
PHP图像处理
PHP捆绑了GD(GIF画图/图形画图),这是一个动态创建的图像库。它可以用于简单的图像操作,如缩放、裁剪、添加水印、创建缩略图(由Jeffrey编写)和应用基本的照片滤镜——您可能已经使用过了。遗憾的是,如果想要创造出像Instagram滤镜这样更复杂的效果,GD是无法实现的。幸运的是,我们有ImageMagick!
GD与ImageMagick
不能在高层次上比较,我们就用一个简单的例子,比如调整大小。假设我们上传了一张新的1024768像素的photo.jpg图像,我们必须将它的大小动态调整为640480像素。
绿色发展
在下面的例子中,我们必须调用六个函数,如果我们有一个可变的纵横比,我们可能必须执行一些计算。
简介
IM(ImageMagick的缩写)有一个漂亮的包装器,叫做Imagick——一个原生的PHP扩展,使用ImageMagick的API来创建和修改图像。唯一的缺点是,你将能够安装它与PECL,其共享主机有时会有一些连接问题。
更简单的方法是使用PHP的命令行(这就是我们将要使用的)。
就是这样!相当完美。
安装ImageMagick
虽然基本上每个好的服务器主机都提供ImageMagick安装,但是你可能不会在你的本地服务器上安装,因为它没有被PHP捆绑。
但是,安装ImageMagick很容易。访问ImageMagick下载页面,选择服务器的操作系统(Unix/Mac/Win),然后选择推荐的软件包。只要你按照简单的说明去做,你就不会出错。
安装完成后,进入终端命令提示符,输入“convert”并输入。如果你得到的是一系列的选项,而不是“找不到命令”,那就证明你已经成功安装了。请注意,在PHP中不需要任何配置。
Instagram是如何运作的?
说实话,我也不知道Instagram团队用什么技术进行图像处理。iOS下也有ImageMagick。也许这就是Instagram的神奇来源?Instagram首席执行官兼联合创始人凯文斯特罗姆的话如下。
“这实际上是许多不同方法的结合。在某些情况下,我们在图像上画画;其他情况下,我们做像素运算。这真的取决于我们想要的效果。”
例如,Lomo-fi在高对比度的图像上不是很有效,而Toaster是最复杂的(缓慢且同时流行的)滤镜之一。
我不再描述更多的信息,但它将是我们的秘密武器:)也许有一天…
“也许有一天……”对我们来说是不够的,希斯特罗姆先生。我们接受挑战。
给我看看代码!
我们将模仿哥谭,烤面包机,纳什维尔,lomo和开尔文过滤器的效果。
instagraphPHP类
我曾经创建了一个小的PHP包装类,使图像处理过程尽可能简单。如您所知,在这些过滤器中,我们有许多:
颜色:图片将被加亮或加阴影。比如我们想把黑色变成紫色。
晕影:图像的边缘逐渐淡出或消失。我们甚至可以翻转或着色插图。
边框:给图片添加边框。例如,我们希望有一个黑色或白色的边框,或者任何具有一定宽度的彩色边框。请注意,边框的宽度会增加图片的大小。
框架:指定的照片框架将被读取和拉伸以适合图片。需要使用纳什维尔和开尔文滤波器。
Tempfile:创建一个临时文件(原始图片的副本)。
输出:简单地重命名工作副本。
执行:我们将通过此方法发送所有命令,以防止在使用shell脚本时出现错误。
我提到这些是为了让我们跳到有趣的部分。创建一个名为instagraph.php的新文件,然后复制并粘贴以下代码。
Instagram过滤器
我们将逐个创建滤镜效果。我将解释必要的PHP函数和ImageMagick命令,包括示例。确保更新PHP类以支持以下新方法。下载包提供了图像帧,这是透明的PNG图像。让我们开始吧。
原象
这是我的狗在沙滩上享受生活的照片。这是我相机的作品。
哥谭市
该滤镜生成高对比度的黑白图像,背景为浅蓝色。在现实生活中,这将实现与霍尔加相机和伊尔福德X2电影。
说明:创建一个工作文件,将图像加载到内存中,增加一点亮度和饱和度,将剩余的颜色更改为深紫色,伽玛校正,添加更多的对比度,并将所有更改保存到一个文件中。添加20像素的黑色边框。这不是很简单吗?
祝酒人
烤面包机滤镜类似于老宝丽来相机的效果。它有明亮的颜色,以粉红色或橙色为发光中心。按照Instagram CEO的说法,这是最难实现的效果之一。
提示:您甚至可以为完整的效果添加一个白色边框,只需在$this- output()中;添加前面的代码$this- border($this- _tmp, white );
文字说明:创建一个工作文件,将图像加载到内存中,将黑色改为深红色,增加亮度,将饱和度设置为1/5,进行伽玛校正(使图像更亮),添加更多对比度,保存。最后,添加一个灰色的晕影(去除了一点饱和度的边缘)和一个橙色的翻转晕影,以实现颜色燃烧的效果。
纳什维尔
纳什维尔很有80年代时尚褪色照片的感觉。它通过洋红色和粉红色色调生成图片。此外,它还添加了一个相框,以获得幻灯片放映的外观。这是Instagram中最容易实现也是最受欢迎的过滤器之一。
说明:创建一个工作文件,将图像加载到内存中,将黑色改为靛蓝色,白色改为桃红色,增强对比度,饱和度增加一半,进行伽玛自动校正。从PNG文件添加相框。
乐摸
Lomography就是通过相框和柔焦来打造高对比度的照片。在现实生活中,这种效果大多是通过霍尔加,LOMO LC-A或所谓的玩具相机(塑料镜头的相机)来实现的。这种效果很容易复制。我们只是简单的把红绿通道的对比度提高1/3,再加一个相框。可以随意实验。
提示:如果您喜欢没有晕影的Lomo效果,只需注释掉或删除相应的代码即可。说明:创建一个工作文件,将图像加载到内存中,将红色通道的对比度提高1/3,再次将红色通道的对比度提高1/3,应用一个晕影。
开
这种效应以达尔文命名。它使用了强烈的桃色和橙色覆盖,并添加了一个褪色的相框。
文字说明:创建一个工作文件,将图像加载到内存中,标准化,亮度增加1/5,饱和度增加一半,创建一个桃色和橙色叠加,应用多种混合模式。最后,使用PNG文件添加一个相框。
如何使用
你可以轻松使用这些效果!我想你会把所有的代码保存在instagraph.php的文件里。现在,创建一个名为filter.ph的文件,并复制下面所需的代码。
如果您只想对图像应用滤镜,可以这样做:
这就是了。现在,如果您想对一幅图像使用所有的滤镜,请使用下面的代码。
现在只要在你的浏览器中打开这个页面,你就可以得到想要的结果。
性能无疑是每个应用程序的重要组成部分。因为对图像应用滤镜的平均时间是1秒左右,所以可以肯定的说是相当快的!
ImageMagick资源
要了解有关ImageMagick的更多信息,以下是我们在过滤方法中使用的所有命令和选项的链接列表:
转换:
调制:调整亮度、饱和度和色调
对比度:增加或减少图像的对比度。
大小:调整图像的高度或宽度。
填充:在填充原图时着色。
绘制:使用原始图形来标记图像。
构图:设置图像构图操作。
通道:应用选项来选择图像通道。
级别:调整图像对比度级别。
自动伽玛:自动调整图像的伽玛水平。
伽玛:伽玛校正的级别
在本教程中,我们了解了ImageMagick,并通过创建类似Instagram的滤镜展示了它的强大功能。我们做到了Instagraph!
如果你需要任何帮助,或者需要帮助创建其他过滤器,如Tilt Shift或Earlybird,请在评论中告诉我,我会尽我所能帮助你。
翻译自:http://net . tuts plus . com/tutorials/PHP/create-insta gram-filters-with-PHP/
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。