PHP极其强大的图片处理库Grafika详细教程(2):图像特效处理模块

该文章是接着上篇文章《PHP极其强大的图片处理库Grafika详细教程(1):图像基本处理》,由于grafika功能太多,所以分开写,其他的点击这里

《1、图像基本处理》
《2、图像特效处理模块》
《3、图像属性处理》
《4、图形绘制》

我们开门见山,直接继续上实例,详细了解点击上面链接

图片过滤、滤镜

grafika提供了11种滤镜功能,可以满足开发中的任何情况需求。

这里先介绍一个操作方法:apply:它可以将滤镜效果应用到图片

图片模糊

使用Blur参数,模糊化一张图片

其中模糊度取值范围为0-100,数值越大,图片越模糊

use Grafika\Grafika;
$editor = Grafika::createEditor();
$editor->open( $image, 'yanying-smaller.jpg' );
$filter = Grafika::createFilter('Blur', 50); // 模糊度为10,模糊度取值为0-100
$editor->apply( $image, $filter ); // 将滤镜应用到图片
$editor->save($image,'yanying-blur.jpg');

我们将图片模糊参数调为50

图片描述图片描述

图片亮度调整

使用Brightness,加亮或者变暗图片

其中亮度值取值范围为

  • -100 至 -1,变暗

  • 0 图片没有变化

  • 1-100图片变量

use Grafika\Grafika;
$editor = Grafika::createEditor();
$editor->open( $image, 'yanying-smaller.jpg' );
$filter = Grafika::createFilter('Brightness', -50);
$editor->apply( $image, $filter );
$editor->save($image,'333/yanying-Brightness-1.jpg');

图片描述图片描述图片描述

改变图片颜色

使用Colorize参数,调整图片的红绿蓝三个基础色来改变图片颜色

颜色参数(红色、绿色、蓝色取值范围相同)

  • 取值-100至-1,颜色减少;

  • 如果为0表示不变;

  • 取值1-100,表示色值增加

use Grafika\Grafika;
$editor = Grafika::createEditor();
$editor->open( $image, 'yanying-smaller.jpg' );
$filter = Grafika::createFilter('Colorize', -50,50,-50);
$editor->apply( $image, $filter );
$editor->save($image,'333/yanying-Colorize.jpg');

图片描述图片描述

改变图片对比度

使用Contrast参数可以改变图片的对比度

对比度的取值和之前的也差不多,-100至-1,对比度减少;0不变;1至100,对比度增加

具体什么叫对比度,自行百度,我也不是太清楚,毕竟不是搞设计的

use Grafika\Grafika;
$editor = Grafika::createEditor();
$editor->open( $image, 'yanying-smaller.jpg' );
$filter = Grafika::createFilter('Contrast', 50);
$editor->apply( $image, $filter );
$editor->save($image,'333/yanying-Contrast.jpg');

图片描述图片描述

图像噪点

使用Dither来给图像添加噪点,其参数取值只有两个diffusion:扩散;ordered:规整的

use Grafika\Grafika;
$editor = Grafika::createEditor();
$editor->open( $image, 'yanying-smaller.jpg' );
$filter = Grafika::createFilter('Dither', 'diffusion');
$editor->apply( $image, $filter );
$editor->save($image,'333/yanying-Dither-diffusion.jpg');

图片描述图片描述图片描述

图像色阶调整

Gamma这个参数在平时是不常用的,只有在专业的图像领域才会使用。可以理解为色阶,是灰阶亮度值与灰阶等级之间的数学关系。

这里的Gamma功能是校正图像色阶,使得图像看起来颜色更加正确

这里的数字值取值范围只有最小值没有最大值只要 >=1.0都可以

use Grafika\Grafika;
$editor = Grafika::createEditor();
$editor->open( $image, 'yanying-smaller.jpg' );
$filter = Grafika::createFilter('Gamma', 2.0);
$editor->apply( $image, $filter );
$editor->save($image,'333/yanying-Gamma.jpg');

图片描述图片描述

图片灰度

使用Grayscale使图片所有的色彩丢弃,只保留黑白两种颜色,没有取值。

use Grafika\Grafika;
$editor = Grafika::createEditor();
$editor->open( $image, 'yanying-smaller.jpg' );
$filter = Grafika::createFilter('Grayscale');
$editor->apply( $image, $filter );
$editor->save($image,'333/yanying-Grayscale.jpg');

图片描述图片描述

图像反色处理

图像反色,也就是弄得和胶片似得。

使用Invert参数可以达到图像反色效果,也没有可选值

use Grafika\Grafika;
$editor = Grafika::createEditor();
$editor->open( $image, 'yanying-smaller.jpg' );
$filter = Grafika::createFilter('Invert');
$editor->apply( $image, $filter );
$editor->save($image,'333/yanying-Invert.jpg');

图片描述图片描述

图片像素化、栅格化

就是把矢量图形转换成像素点组成的点阵图形,也叫栅格化。搞ps的应该都清楚

该参数有个取值范围只要大于或者等于1就可以,如果值越大,像素点也就越大

use Grafika\Grafika;
$editor = Grafika::createEditor();
$editor->open( $image, 'yanying-smaller.jpg' );
$filter = Grafika::createFilter('Pixelate',10);
$editor->apply( $image, $filter );
$editor->save($image,'333/yanying-Pixelate-10.jpg');

我们取值5和取值10对比下

图片描述图片描述图片描述

图片锐化

图片锐化就是补偿图像的轮廓,增强图像的边缘及灰度跳变的部分,使图像变得清晰。

使用参数Sharpen可以处理锐化,其取值为1-100(包含)。

use Grafika\Grafika;
$editor = Grafika::createEditor();
$editor->open( $image, 'yanying-smaller.jpg' );
$filter = Grafika::createFilter('Sharpen',50);
$editor->apply( $image, $filter );
$editor->save($image,'333/yanying-Sharpen.jpg');

我们取值50,看下效果

图片描述图片描述

图像查找边缘

通过数学计算检测出图像的边缘,在ps中较为常用。

这里使用Sobel参数达到相同效果,没有值可选

use Grafika\Grafika;
$editor = Grafika::createEditor();
$editor->open( $image, 'yanying-smaller.jpg' );
$filter = Grafika::createFilter('Sobel');
$editor->apply( $image, $filter );
$editor->save($image,'333/yanying-Sobel.jpg');

图片描述图片描述

严颖,PHP研发工程师

博客:segmentfault主页


2.7k 声望
275 粉丝
0 条评论
推荐阅读
4种灵活的Scss编译输出风格整理
很多人从使用Scss的那一刻起,就被别人告诉了如何编译。所以,基本上也就只会一种命令编译方式。其实Scss提供了4种风格输出CSS,以满足更多人的需求。不同的输出方式如下:

星空幻颖7阅读 2.2k

怎样用 PHP 来实现枚举?
在数学和计算机科学理论中,一个集的枚举是列出某些有穷序列集的所有成员的程序,或者是一种特定类型对象的计数。这两种类型经常(但不总是)重叠。枚举是一个被命名的整型常数的集合,枚举在日常生活中很常见,...

唯一丶25阅读 6.4k评论 4

PHP转Go实践:xjson解析神器「开源工具集」
我和劲仔都是PHP转Go,身边越来越多做PHP的朋友也逐渐在用Go进行重构,重构过程中,会发现php的json解析操作(系列化与反序列化)是真的香,弱类型语言的各种隐式类型转换,很大程度的减低了程序的复杂度。

王中阳Go10阅读 2.1k评论 3

封面图
图片防盗链破解 解决图片防盗链问题 反向代理
当客户端(浏览器)向服务器请求内容的时候,会提交一个header,这个header中包含了如:浏览器信息、cookie等内容,那么有一个叫referer的东东,也包含在这里面。

TANKING7阅读 11.3k评论 5

Git操作不规范,战友提刀来相见!
年终奖都没了,还要扣我绩效,门都没有,哈哈。这波骚Git操作我也是第一次用,担心闪了腰,所以不仅做了备份,也做了笔记,分享给大家。问题描述小A和我在同时开发一个功能模块,他在优化之前的代码逻辑,我在开...

王中阳Go5阅读 2.4k评论 2

封面图
Hyperf 3.0 发布,PHP 新时代
在过去的一年半时间里,Hyperf 2.2 共发布了 35 个小版本,使 Hyperf 达到了一个前所未有的高度,这里也获得了一些不错的数据反馈。

huangzhhui4阅读 1.1k评论 1

封面图
微信公众号开发:自动回复文本/图片/图文消息/关键词回复/上传素材/自定义菜单
对接流程1、申请微信公众号测试账号URL:[链接]2、登录,配置开发者服务器URL和Token开发者服务器配置代码:config.php {代码...} URL是config.php在你服务器的URLToken是上面代码自己设置的Token搞定之后,就能完...

TANKING2阅读 10.2k

2.7k 声望
275 粉丝
宣传栏