View on GitHub

yii2-cookbook-chinese

Yii Application Development Cookbook(Third Edition)中文翻译

Imagine库

Imagine是用于操作图片的OOP库。它可以让你在GD、Imagic和Gmagic PHP扩展的帮助下,对多种格式的图片进行裁剪、缩放以及执行其它操作。Yii2-Imagine是队这个库的轻量静态封装。

准备

  1. 按照官方指南http://www.yiiframework.com/doc-2.0/guide-start-installation.html的描述,使用Composer包管理器创建一个新的应用。
  2. 使用如下命令安装扩展:
composer require yiisoft/yii2-imagine

如何做…

在你的项目中,你可以以两种方式使用扩展:

作为工厂使用

你可以使用Imagine库类的一个实例:

$imagine = new Imagine\Gd\Imagine();
// or
$imagine = new Imagine\Imagick\Imagine();
// or
$imagine = new Imagine\Gmagick\Imagine();

但是,这依赖于你系统中已存在的PHP扩展。你可以使用getImagine()方法:

$imagine = \yii\imagine\Image::getImagine();

使用内部方法

你可以使用corp()thumbnail()watermark()text()frame()方法用于常见的高级操作:

<?php
use yii\imagine\Image;
Image::crop('path/to/image.jpg', 100, 100, ManipulatorInterface::THUMBNAIL_OUTBOUND)
->save('path/to/destination/image.jpg', ['quality' => 90]);

\yii\imagine\BaseImage的源代码中查看所有支持的方法以及细节。

工作原理…

这个扩展准备用户数据,创建一个原始的Imagine对象,并调用对应的方法。所有的方法都会返回原始的iamge对象。你可以继续操作这个图像,或者将结果保存到你的磁盘上。

参考