Imagine 是一個物件導向的 PHP 類庫用於圖片操作。這個類庫能夠處理一些常用到的操作如:調整大小、裁剪、應用過濾器等。其Color類庫可用於對任意對定的顏色產生RGB值。並且還提供一些方法來繪製圖形如:圓弧,橢圓,線,片等。此外,還可以利用一個靈活的字型類來載入任意字型檔,然後將文字插入到圖片中。Imagine 是一個會經常更新的類庫,將來還會實現:圖表產生、圓角過濾器等功能。本文主要和大家介紹Yii2第三方類庫外掛程式Imagine的安裝和使用,具有一定的參考價值,感興趣的小夥伴們可以參考一下,希望能協助到大家。
Yii2 安裝 Imagine
Imagine 的手動下載和安裝這裡就不做介紹了,可自行百度。這裡介紹 Yii2 的 Composer 方式來安裝 Imageine。
方法一
php composer.phar require --prefer-dist yiisoft/yii2-imagine
方法二
在項目 composer.json 檔案內的 require 欄位裡添加如下代碼:
"yiisoft/yii2-imagine": "~2.1.0"
然後再項目根目錄下執行命令(cmd):
composer require yiisoft/yii2-imagine
Yii2 使用 Imagine
use yii\imagine\Image;$srcImg = Yii::getAlias('@webroot/test.jpg');$aimImg = Yii::getAlias('@webroot/testdeal.jpg');$srcTTF = Yii::getAlias('@webroot/img/symbol.ttf');// 縮減// 參數 inset 表示定框縮減// 圖片完整縮減在 200x100 的框內// 備忘:定框的寬度或高度必須有一個小於圖片的實際尺寸,否則直接返回源圖尺寸Image::thumbnail($srcImg, 200, 100, 'inset')->save($aimImg, ['quality'=>100]);// 縮減// 參數 outbound 表示單尺寸優先縮減並置中截取// 該參數為函數的預設值,它會為您儘可能多的截取圖片但又不會超出圖片範圍// 例:源圖 500x200,那麼按照高度 100 縮減(變為250x100),然後再置中截取 200x100// 例:源圖 400x350,那麼按照寬度 200 縮率(變為200x175),然後再置中截取 200x100// 例:源圖 100x80,那麼不縮率不截取,直接返回源圖 100x80Image::thumbnail($srcImg, 200, 100, 'outbound')->save($aimImg, ['quality'=>100]);// 縮減// 按寬度 200 縮減,高度自適應Image::thumbnail($srcImg, 200, null)->save($aimImg, ['quality'=>100]);// 縮減// 按高度 100 縮減,寬度自適應Image::thumbnail($srcImg, null, 100)->save($aimImg, ['quality'=>100]);// 剪下// 參數:源圖、寬度、高度、起始點// 將源檔案 $srcImg 儲存到 $aimImgImage::crop($srcImg, 400, 200, [100,100])->save($aimImg);// 旋轉// 未研究Image::frame('@webroot/img/test-image.jpg', 5, '666', 0)->rotate(-8)->save(Yii::getAlias('@webroot/img/thumb-test-frame.jpg'), ['quality' => 100]);// 浮水印// 未研究Image::watermark('@webroot/img/test-image.jpg', '@webroot/img/watermark.jpg', [10,10])->save(Yii::getAlias('@webroot/img/thumb-test-watermark.jpg'), ['quality' => 100]);// 文字浮水印// 參數:源圖、文字、字型、起始點、字型配置Image::text($srcImg, 'hello world', $srcTTF, [100,100] ,['color'=>'000000','size'=>50])->save($aimImg, ['quality'=>100]);