首頁 >後端開發 >php教程 >PHP產生PSD檔案縮圖教程

PHP產生PSD檔案縮圖教程

*文
*文原創
2017-12-25 14:06:352569瀏覽

這篇文章主要介紹如何使用PHP產生PSD檔案縮圖,主要運用了imagick。本文講解了安裝ImageMagick、安裝imagick、檢查安裝是否成功、產生PSD檔案縮圖等內容,希望對大家有幫助。

第一步、安裝ImageMagick

  首先需要安裝ImageMagick http://imagemagick.org/script/binary-releases.php#windows,因為imagick 是一個可以供PHP 呼叫ImageMagick 功能的PHP擴充。 (目前最新版本是:ImageMagick-6.8.9-5-Q16-x64-dll.exe)

  安裝目錄不能有空格,我個人是安裝在C 盤根目錄:

C:\ImageMagick


  一路預設安裝即可,安裝完畢後打開CMD 命令列介面,輸入:convert ,並按回車,如果能看到一大堆的內容則表示安裝成功。

  如果提示「 convert 不是內部或外部命令,也不是可運行的程式或批次檔」或提示「請輸入轉換的磁碟機」( convert 是預設的將FAT32 轉換到NTFS 的系統指令)那麼你需要自己將ImageMagick 的安裝路徑加入系統路徑。

  我的電腦-> 點選右鍵-> 屬性-> 進階-> 環境變數-> 系統變數-> 找到「Path」 -> 選取並點擊進行編輯-> ; 把你的安裝路徑加進去。

第二步、安裝imagick

  點擊這裡下載,注意下載的時候要下對應的PHP 版本,同時注意系統是32位還是64位,以及PHP 是NTS 版還是TS 版(目前最新穩定版是3.1.2 ,關於如何判斷PHP 是NTS 版還是TS 版,可透過phpinfo 查看其中的Thread Safety 項,如果是enabled 就代表是TS 版,否之則就是NTS 版)

  將下載的壓縮包解壓縮,找到php_imagick.dll 文件,把它放到PHP 的擴展目錄裡,然後打開php.ini 文件,在對應的位置添加以下一行:

extension=php_imagick.dll

  儲存退出後並重新啟動電腦,確保生效。

第三個步驟、檢查

  如果一切正常,重啟後在phpinfo 裡應該可以看到imagick 項,如:

#如果找不到,則回到第一步,更換不同版本的ImageMagick 重新安裝並重新偵錯。

第四步、測試

  OK,到這一步驟可以開始寫程式了,過程就不細說了,直接上程式碼

error_reporting(E_ERROR | E_WARNING);
 
$im = new Imagick('1.psd');
$im->setImageIndex(0);
$im->setIteratorIndex(0);
$im->stripImage(); //去除图片信息
$im->setImageCompressionQuality(80); //图片质量
$im->writeImage('1.jpg');


  以上程式碼已經經過測試可以正確產生一張1.jpg 的圖片。

 建議縮圖還是以jpg 格式,因為png 格式不支援壓縮,我在測試的時候使用30M 的PSD 文件,生成出來的png 縮圖有3M 多,而jpg 只有200KB 左右,並且生成png 圖片的速度明顯很慢,大概需要3,4秒。

  另外還做了極端測試,用了一近600M 的PSD 檔案產生jpg 縮圖,速度基本上在2秒內,檔案大小不到2.5M ,由於並未對圖片進行尺寸的修改,所以最終產生檔案的體積可以根據實際情況再減少。

第五步、其它格式

  除了PSD 文件,我還另外嘗試了一些其它格式,比如MP4 、AVI 等視頻格式,但生成速度超級慢。最後發現比較實用的就是產生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);

相關推薦:

什麼是GD函式庫?在PHP中載入GD庫的具體介紹

(進階篇)PHP圖片處理技術-GD庫

深入淺析ImageMagick指令執行漏洞

#

以上是PHP產生PSD檔案縮圖教程的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn