加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP图片处理库Grafika详细教程(1):图像基本处理

发布时间:2016-11-16 03:50:32 所属栏目:PHP教程 来源:segmentfault
导读:副标题#e# Grafika是一个PHP图像处理库,是基于Imagick和GD,可以用于改变图片大小,剪裁,比较,添加水印等等功能。还有感知哈希,高级图像过滤,绘制贝塞尔曲线等功能,可谓非常强大。 由于功能太多,所以分成几篇文章写。 《1、图像基本处理》 《2、图像

我们使用智能剪裁将图片剪裁至200*200px

  1. use GrafikaGrafika; 
  2. $editor = Grafika::createEditor(); 
  3. $editor->open( $image, 'yanying-smaller.jpg' ); 
  4. $editor->crop( $image, 200, 200, 'smart' ); 
  5. $editor->save( $image, 'yanying-smart.jpg' );  

发现还是可以突出重点的 

PHP图片处理库Grafika详细教程(1):图像基本处理

GIF缩略图

压缩GIF,不丢失动画

grafika可以直接压缩GIF图片,并且不丢失动画功能。  

PHP图片处理库Grafika详细教程(1):图像基本处理 

  1. use GrafikaGrafika; 
  2. $editor = Grafika::createEditor(); 
  3. $editor->open( $image, 'sample.gif' ); 
  4. $editor->resizeFit( $image, 250, 128 ); 
  5. $editor->save( $image, 'output.gif' );  

我们这里将原图压缩到原来的一半,发现动画并没有丢失  

PHP图片处理库Grafika详细教程(1):图像基本处理

移除GIF动画效果

当然,如果有需要,我们也可以直接移除GIF的动画效果

  1. use GrafikaGrafika; 
  2. $editor = Grafika::createEditor(); 
  3. $editor->open( $image, 'sample.gif' ); 
  4. $editor->flatten( $image ); 
  5. $editor->save( $image, 'output-no-animation.gif' );    

PHP图片处理库Grafika详细教程(1):图像基本处理

图片合并

图片合并需要2张图片,将其中一张作为基本图,准备的第二章图片就是放置在基础图片之上。

我们首先来看代码

  1. use GrafikaGrafika; 
  2. $editor = Grafika::createEditor(); 
  3. $editor->open($image1 , 'yanying-h.jpg'); 
  4. $editor->open($image2 , 'yanying-smaller.jpg'); 
  5. $editor->blend ( $image1, $image2 , 'normal', 0.9, 'center'); 
  6. $editor->save($image1,'333/yanying-blend.jpg');  

解释一下

首先打开两张图片,其中$image1为基础图片,也就是放在下面的。重点在blend这个方法。

其中

  • 第一个参数为基础图片
  • 第二个参数为放置在基础图片之上的图片normal, multiply, overlay or screen.,这里的类型意思就是图片叠加的模式,下面会给出实例看每种的不同。
  • 第三个参数为透明度,这个不说太多,容易想到。
  • 第四个为位置,有10个选择,其中,前面9种为用户自定义拜访位置,而最后一个是智能拜访,由grafika来判断摆放在哪里好。top-left, top-center, top-right, center-left, center, center-right, bottom-left, bottom-center, bottom-right and smart
  • 第五个参数为可选参数,表示图片2距离图片1左边的距离
  • 第六个参数也为可选参数,表示图片2距离图片1上边的距离

我们试着摆几种情况。

1、normal

其中位置信息:center,透明度为0.9,也就是上面代码的那种  

PHP图片处理库Grafika详细教程(1):图像基本处理

2、multiply

位置信息:,top-left,其他不变 

PHP图片处理库Grafika详细教程(1):图像基本处理

3、overlay

位置信息:bottom-right,其他不变  

PHP图片处理库Grafika详细教程(1):图像基本处理

4、screen

位置信息:,最后一个位置参数不给,也就是默认top-left  

PHP图片处理库Grafika详细教程(1):图像基本处理

图像旋转

图像旋转比较简单,只需要给一个旋转角度参数就可以了,如果想要给背景填充个颜色,再给一个颜色参数即可。(默认不给背景色为黑色)

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读