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

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

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

固定尺寸缩放类型。就是不管图片长宽比,全部缩小到200px,可能导致图片变形。

  1. use GrafikaGrafika; 
  2. $editor = Grafika::createEditor(); 
  3. $editor->open($image1 , 'yanying.jpg'); // 打开yanying.jpg并且存放到$image1 
  4. $editor->resizeExact($image1 , 200 , 200); 
  5. $editor->save($image1 , 'yanying1.jpg'); 
  6.  
  7. $editor->open($image2 , 'yanying-h.jpg'); // 打开yanying.jpg并且存放到$image2 
  8. $editor->resizeExact($image2 , 200 , 200); 
  9. $editor->save($image2 , 'yanying2.jpg');  

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

3、Resize Fill

居中剪裁。就是把较短的变缩放到200px,然后将长边的大于200px的部分居中剪裁掉,图片不会变形。

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

4、Resize Exact Width

等宽缩放。和第一种功能相似,最终宽为200px,等比缩放,高度不管。

  1. use GrafikaGrafika; 
  2. $editor = Grafika::createEditor(); 
  3. $editor->open($image1 , 'yanying.jpg'); // 打开yanying.jpg并且存放到$image1 
  4. $editor->resizeExactWidth($image1 , 200); 
  5. $editor->save($image1 , 'yanying1.jpg'); 
  6.  
  7. $editor->open($image2 , 'yanying-h.jpg'); // 打开yanying.jpg并且存放到$image2 
  8. $editor->resizeExactWidth($image2 , 200); 
  9. $editor->save($image2 , 'yanying2.jpg');  

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

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

5、Resize Exact Height

等高缩放。最终高为200px,等比缩放,不考虑图片宽度。

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

图像对比功能

1、图片相似度对比

我们首先准备一张基本图,用来和其他图片对比。(segmentfault网页图片可能处理过,直接使用本文图片可能结果不一致)

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

1)、我们第一次使用一张灰度图片来比较

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

  1. use GrafikaGrafika; 
  2. $editor = Grafika::createEditor(); 
  3. $result = $editor->compare('yanying.jpg' , 'yanying_grey.jpg'); 
  4. var_dump($result); // int 2  

说明: grafika图片对比方法compare返回一个数字,其中如果数字越接近于0,那么表示图片越相似。如果数字在0-10范围内,那么图片都可能相似。但是如果数字大于10,那么,可能就完全不同。

这里返回2,说明相似度还是非常高的。

2)、我们再用一张缩小的图片来测试,记住都是和第一张基本图比较。

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

  1. use GrafikaGrafika; 
  2. $editor = Grafika::createEditor(); 
  3. $result = $editor->compare('yanying.jpg' , 'yanying-smaller.jpg'); 
  4. var_dump($result); // int 0  

这里结果返回0,相似度非常高。

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

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

热点阅读