加入收藏 | 设为首页 | 会员中心 | 我要投稿 南京站长网 (https://www.025zz.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

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

Grafika是一个PHP图像处理库,是基于Imagick和GD,可以用于改变图片大小,剪裁,比较,添加水印等等功能。还有感知哈希,高级图像过滤,绘制贝塞尔曲线等功能,可谓非常强大。

由于功能太多,所以分成几篇文章写。

《1、图像基本处理》

《2、图像特效处理模块》

《3、图像属性处理》

《4、图形绘制》

优点:

  • 缩略图的速度非常快,质量非常高
  • 支持智能剪裁
  • 很好的支持GIF图片
  • 5种缩略图模式
  • 图像对比功能
  • 图像高级过滤功能
  • 图像混合
  • 其他图像处理库支持的API基本都支持

安装

下载

1、直接下载:

Grafika的官网、Github地址

2、composer:

  1. composer require kosinix/grafika:dev-master --prefer-dist 

环境需求

  1. PHP >= 5.3,当然官方推荐php7
  2. GD库 >= 2.0版本
  3. Imagick最好(不强求)>=3.3.0 , ImageMagick >= 6.5.3

部署

下载下来的Grafika目录基本结构像下面这样:  

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

不过composer下载下来的多一点儿,你只需要使用kosinix/grafika目录下的东西就好了。

我们在grafika目录下建立一个index.php,之后的操作都在这里。

grafika给我们提供了一个非常好用的autoloader.php位于src目录下。

在index.php中引入它,(说明下,以下示例都需要引入这个autoloader.php文件,我们默认省略),下面就可以直接开发了。

  1. require_once 'src/autoloader.php'; 

创建Editors

1、createEditor

grafika通过静态方法createEditor来创建一个editor。它包含所有的图片处理方法。

由于,grafika是基于Imagick和GD库,所以使用createEditor方法会根据当前情况,自动选择所需要的图片处理库。(推荐使用)

  1. use GrafikaGrafika; // Import package 
  2. $editor = Grafika::createEditor(); // Create the best available editor  

2、Imagick Editor

当然你也可以直接使用Imagick类库。

  1. use GrafikaImagickEditor; // Import package 
  2. $editor = new Editor(); // Imagick editor  

注意:有些情况可能不支持该类库,你需要使用下面语句检查后使用,(不过你最好直接使用方法1,就没这些事)

  1. use GrafikaImagickEditor; // Import package 
  2. $editor = new Editor(); // Imagick editor 
  3. if( $editor->isAvailable() ) { // Safety check 
  4.  
  5.     // Your code here 
  6.  

3、GD Editor

你也可以直接使用GD库,也有些情况可能不支持,记得检查

  1. use GrafikaGdEditor; // Import package 
  2. $editor = new Editor(); // Gd editor 
  3. if( $editor->isAvailable() ) { // Safety check 
  4.  
  5.     // Your code here 
  6.  
  7. }  

创建图像

grafika允许你使用4种方式创建一个待处理的图像

1、直接打开图像

创建editor + open方法

  1. use GrafikaGrafika; 
  2. $editor = Grafika::createEditor(); 
  3. $editor->open( $image, 'path/to/image.jpg');  

2、使用静态方法打开图片

使用直接打开、创建图片

  1. use GrafikaGrafika; 
  2. $image = Grafika::createImage('path/to/image.jpg'); 
  3. // 这里省略了$editor = Grafika::createEditor();  

3、创建一个空白的画布

新建一个画布作为新图像

  1. use GrafikaGrafika; 
  2. $image = Grafika::createBlankImage(100,100);  

4、从已有图片拷贝一个

拷贝一个图像作为图像处理

  1. $copy = clone $image; 

这种方法你要保证之前有一张图片

这几种方法之后的操作大同小异,我们只选择第一种常规方法作为讲解示例

图片缩略图

我们先准备一个原图 

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

接下来,假设我们要创建的缩略图长:200px宽200px

1、Resize Fit

等比例缩放类型。那么就保证图片较长的一边不超过200px,等比缩放,缩放后不填充背景。

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

当然不要忘了第一行的require

(编辑:南京站长网)

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

热点阅读