Imagine
Imagine 是一個(gè)面向?qū)ο蟮?PHP 類庫用于圖片操作。這個(gè)類庫能夠處理一些常用到的操作如:調(diào)整大小、裁剪、應(yīng)用過濾器等。
其Color類庫可用于對(duì)任意對(duì)定的顏色生成RGB值。并且還提供一些方法來繪制圖形如:圓弧,橢圓,線,片等。
此外,還可以利用一個(gè)靈活的字體類來加載任意字體文件,然后將文字插入到圖片中。
Imagine 是一個(gè)會(huì)經(jīng)常更新的類庫,將來還會(huì)實(shí)現(xiàn):圖表生成、圓角過濾器等功能。
Yii2 安裝 Imagine
Imagine 的手動(dòng)下載和安裝這里就不做介紹了,可自行百度。這里介紹 Yii2 的 Composer 方式來安裝 Imageine。
方法一
php composer.phar require --prefer-dist yiisoft/yii2-imagine
方法二
在項(xiàng)目 composer.json 文件內(nèi)的 require 字段里添加如下代碼:
"yiisoft/yii2-imagine": "~2.1.0"
然后再項(xiàng)目根目錄下執(zhí)行命令(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'); // 縮略 // 參數(shù) inset 表示定框縮略 // 圖片完整縮略在 200x100 的框內(nèi) // 備注:定框的寬度或高度必須有一個(gè)小于圖片的實(shí)際尺寸,否則直接返回源圖尺寸 Image::thumbnail($srcImg, 200, 100, 'inset')->save($aimImg, ['quality'=>100]); // 縮略 // 參數(shù) outbound 表示單尺寸優(yōu)先縮略并居中截取 // 該參數(shù)為函數(shù)的默認(rèn)值,它會(huì)為您盡可能多的截取圖片但又不會(huì)超出圖片范圍 // 例:源圖 500x200,那么按照高度 100 縮略(變?yōu)?50x100),然后再居中截取 200x100 // 例:源圖 400x350,那么按照寬度 200 縮率(變?yōu)?00x175),然后再居中截取 200x100 // 例:源圖 100x80,那么不縮率不截取,直接返回源圖 100x80 Image::thumbnail($srcImg, 200, 100, 'outbound')->save($aimImg, ['quality'=>100]); // 縮略 // 按寬度 200 縮略,高度自適應(yīng) Image::thumbnail($srcImg, 200, null)->save($aimImg, ['quality'=>100]); // 縮略 // 按高度 100 縮略,寬度自適應(yīng) Image::thumbnail($srcImg, null, 100)->save($aimImg, ['quality'=>100]); // 剪切 // 參數(shù):源圖、寬度、高度、起始點(diǎn) // 將源文件 $srcImg 保存到 $aimImg Image::crop($srcImg, 400, 200, [100,100])->save($aimImg); // 旋轉(zhuǎn) // 未研究 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]); // 文字水印 // 參數(shù):源圖、文字、字體、起始點(diǎn)、字體配置 Image::text($srcImg, 'hello world', $srcTTF, [100,100] ,['color'=>'000000','size'=>50])->save($aimImg, ['quality'=>100]);
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持。
【網(wǎng)站聲明】本站除付費(fèi)源碼經(jīng)過測(cè)試外,其他素材未做測(cè)試,不保證完整性,網(wǎng)站上部分源碼僅限學(xué)習(xí)交流,請(qǐng)勿用于商業(yè)用途。如損害你的權(quán)益請(qǐng)聯(lián)系客服QQ:2655101040 給予處理,謝謝支持。