文章主要介绍了Yii 使用yii2-imagine拓展实现图像处理功能,需要的朋友可以参考下。
Imagine 是一个面向对象的 PHP 类库用于图片操作。这个类库能够处理一些常用到的操作如:调整大小、裁剪、应用过滤器等。
其Color类库可用于对任意对定的颜色生成RGB值。并且还提供一些方法来绘制图形如:圆弧,椭圆,线,片等。
此外,还可以利用一个灵活的字体类来加载任意字体文件,然后将文字插入到图片中。
Imagine 是一个会经常更新的类库,将来还会实现:图表生成、圆角过滤器等功能。
Yii2 安装 Imagine
Imagine 的手动下载和安装这里就不做介绍了,可自行百度。这里介绍 Yii2 的 Composer 方式来安装 Imageine。
yii2-imagine 安装
composer require --prefer-dist yiisoft/yii2-imagine
yii2-imagine 使用
引入
use yii\imagine\Image;
实例化
$imagine = new Image();
使用方法
yii2-imagine 压缩图片
//压缩
Image::thumbnail('@webroot/img/test-image.jpg', 120, 120)->save(Yii::getAlias('@webroot/img/thumb-test-image.jpg'), ['quality' => 100]);
echo Yii::getAlias('@webroot/img/thumb-test-image.jpg');
//参数说明:
$filename 文件的路径
$width 缩略图的宽
$height 缩略图的高
$mode 模式(默认THUMBNAIL_OUTBOUN)
\Imagine\Image\ManipulatorInterface::THUMBNAIL_OUTBOUN 裁剪模式
\Imagine\Image\ManipulatorInterface::THUMBNAIL_INSET 填充模式
yii2-imagine 裁剪图片
//剪切
$result = Image::crop('@webroot/img/test-image.jpg', 200, 200,[100,100])->save(Yii::getAlias('@webroot/img/thumb-test-crop.jpg'));
//参数说明:
$filename 文件的路径
$width 裁剪的宽度
$height 裁剪的高度
$start 裁剪的x,y 点
yii2-imagine 旋转图片
//旋转
Image::frame('@webroot/img/test-image.jpg', 5, '666', 0)->rotate(-8)->save(Yii::getAlias('@webroot/img/thumb-test-frame.jpg'), ['quality' => 100]);
yii2-imagine 添加图片水印
//水印
Image::watermark('@webroot/img/test-image.jpg', '@webroot/img/watermark.jpg', [10,10])->save(Yii::getAlias('@webroot/img/thumb-test-watermark.jpg'), ['quality' => 100]);
//参数说明:
$filename 文件的路径
$watermarkFilename 水印图片
$start 裁剪点(x,y)
yii2-imagine 添加文字水印
//文字水印
Image::text('@webroot/img/test-image.jpg', 'hello world', '@webroot/img/symbol.ttf',[100,100],['color'=>'000000','size'=>50])->save(Yii::getAlias('@webroot/img/thumb-test-text.jpg'), ['quality' => 100]);