PHP中使用imagick生成PSD文件縮略圖教程
第一步、安裝ImageMagick
首先需要安裝 ImageMagick http://imagemagick.org/script/binary-releases.php#windows,因?yàn)?imagick 是一個(gè)可以供 PHP 調(diào)用 ImageMagick 功能的PHP擴(kuò)展。(目前最新版本是:ImageMagick-6.8.9-5-Q16-x64-dll.exe)
安裝目錄不能有空格,我個(gè)人是安裝在 C 盤根目錄:
C:\ImageMagick
一路默認(rèn)安裝即可,安裝完畢后打開 CMD 命令行界面,輸入:convert ,并按回車,如果能看到一大堆的內(nèi)容則表示安裝成功。
如果提示“ convert 不是內(nèi)部或外部命令,也不是可運(yùn)行的程序或批處理文件”或者提示“請(qǐng)輸入轉(zhuǎn)換的盤符”( convert 是一個(gè)默認(rèn)的將 FAT32 轉(zhuǎn)換到 NTFS 的系統(tǒng)命令)那么你需要自己將 ImageMagick 的安裝路徑添加到系統(tǒng)路徑。
我的電腦 -> 單擊右鍵 -> 屬性 -> 高級(jí) -> 環(huán)境變量 -> 系統(tǒng)變量 -> 找到“Path” -> 選中并點(diǎn)擊進(jìn)行編輯 -> 把你的安裝路徑添加進(jìn)去。
第二步、安裝imagick
點(diǎn)擊這里下載,注意下載的時(shí)候要下對(duì)應(yīng)的 PHP 版本,同時(shí)注意系統(tǒng)是32位還是64位,以及 PHP 是 NTS 版還是 TS 版(目前最新穩(wěn)定版是 3.1.2 ,關(guān)于如何判斷 PHP 是 NTS 版還是 TS 版,可通過 phpinfo 查看其中的 Thread Safety 項(xiàng),如果是 enabled 就代表是 TS 版,否之則就是 NTS 版)
將下載的壓縮包解壓,找到 php_imagick.dll 文件,把它放到 PHP 的擴(kuò)展目錄里,然后打開 php.ini 文件,在對(duì)應(yīng)的位置添加以下一行:
extension=php_imagick.dll
保存退出后并重啟電腦,確保生效。
第三步、檢查
如果一切正常,重啟后在 phpinfo 里應(yīng)該能看到 imagick 項(xiàng),如:
如果找不到,則返回第一步,更換不同版本的 ImageMagick 重新安裝并重新調(diào)試。
第四步、測(cè)試
OK,到這一步可以開始編寫代碼了,過程就不細(xì)說了,直接上代碼
error_reporting(E_ERROR | E_WARNING);
$im = new Imagick('1.psd');
$im->setImageIndex(0);
$im->setIteratorIndex(0);
$im->stripImage(); //去除圖片信息
$im->setImageCompressionQuality(80); //圖片質(zhì)量
$im->writeImage('1.jpg');
以上代碼已經(jīng)經(jīng)過測(cè)試可以正確生成出一張 1.jpg 的圖片。
建議縮略圖還是以 jpg 格式,因?yàn)?png 格式不支持壓縮,我在測(cè)試的時(shí)候使用 30M 的 PSD 文件,生成出來的 png 縮略圖有 3M 多,而 jpg 只有 200KB 左右,并且生成 png 圖片的速度明顯很慢,大概需要3,4秒。
另外還做了極端測(cè)試,用了一近 600M 的 PSD 文件生成 jpg 縮略圖,速度基本在2秒內(nèi),文件大小不到 2.5M ,由于并未對(duì)圖片進(jìn)行尺寸的修改,所以最終生成文件的體積可以根據(jù)實(shí)際情況再減小。
第五步、其它格式
除了 PSD 文件,我還另外嘗試了一些其它格式,比如 MP4 、AVI 等視頻格式,但生成速度超級(jí)慢。最后發(fā)現(xiàn)比較實(shí)用的就是生成 PDF 文件的縮略圖,但處理 PDF 文件前,需要安裝 Ghostscript ,然后整體的代碼基本和生成 PSD 的代碼一樣
$im = new Imagick();
$im->readImage('D:/soft/wamp/www/test/1.pdf[0]');
//echo $im->getNumberImages();
$im->writeImages('D:/soft/wamp/www/test/1.jpg', false);
- windows7下安裝php的imagick和imagemagick擴(kuò)展教程
- 淺談php擴(kuò)展imagick
- 利用php_imagick實(shí)現(xiàn)復(fù)古效果的方法
- php實(shí)現(xiàn)在新浪云中使用imagick生成縮略圖并上傳的方法
- PHP Imagick完美實(shí)現(xiàn)圖片裁切、生成縮略圖、添加水印
- php使用Imagick生成圖片的方法
- PHP中使用imagick實(shí)現(xiàn)把PDF轉(zhuǎn)成圖片
- PHP中使用Imagick操作PSD文件實(shí)例
- PHP中imagick函數(shù)的中文解釋
- PHP中使用Imagick實(shí)現(xiàn)各種圖片效果實(shí)例
- php_imagick實(shí)現(xiàn)圖片剪切、旋轉(zhuǎn)、銳化、減色或增加特效的方法
- php Imagick獲取圖片RGB顏色值
- PHP使用imagick擴(kuò)展實(shí)現(xiàn)合并圖像的方法
相關(guān)文章
php使用curl判斷網(wǎng)頁(yè)404(不存在)的方法
這篇文章主要介紹了php使用curl判斷網(wǎng)頁(yè)404(不存在)的方法,通過curl獲取http頭信息進(jìn)行404錯(cuò)誤判斷,非常簡(jiǎn)便易懂,需要的朋友可以參考下2016-06-06PHP獲取http請(qǐng)求的頭信息實(shí)現(xiàn)步驟
PHP如何獲取http請(qǐng)求頭信息,是一個(gè)急切解決而不知道如何抉擇的問題,本人搜集整理下,可供參考下2012-12-12php源碼分析之DZX1.5加密解密函數(shù)authcode用法
這篇文章主要介紹了php源碼分析之DZX1.5加密解密函數(shù)authcode用法,實(shí)例分析了DZX1.5中authcode函數(shù)加密與解密的使用技巧,需要的朋友可以參考下2015-06-06PHP跳出for循環(huán)中的break和continue
在PHP中,可以使用break關(guān)鍵字來跳出循環(huán),,PHP中還可以使用continue關(guān)鍵字跳過本次循環(huán)并繼續(xù)執(zhí)行下一次循環(huán),當(dāng)循環(huán)執(zhí)行到continue語(yǔ)句時(shí),本次循環(huán)中continue之后的代碼將不再執(zhí)行,直接進(jìn)入下一次循環(huán)2023-09-09CodeIgniter php mvc框架 中國(guó)網(wǎng)站
CodeIgniter 是一個(gè)小巧但功能強(qiáng)大的 PHP 框架,作為一個(gè)簡(jiǎn)單而“優(yōu)雅”的工具包,它可以為 PHP 程序員建立功能完善的 Web 應(yīng)用程序。如果你是一個(gè)使用共享主機(jī),并且為客戶所要求的期限而煩惱的開發(fā)人員,如果你已經(jīng)厭倦了那些傻大笨粗的框架2008-05-05最新用php獲取谷歌PR值算法,附上php查詢PR值代碼示例
用php程序怎么獲取谷歌PR值,已經(jīng)有好幾個(gè)人問我php查詢PR值怎么實(shí)現(xiàn)的,于是現(xiàn)在就把php查詢PR值法算法附上,大家可以直接使用下面的代碼去測(cè)試php查詢PR值2011-12-12