作者tn801534 (踢恩)
看板PHP
標題[心得] Imagemagick的縮圖使用
時間Fri Dec 12 16:38:51 2008
Imagemagick的官網:
http://www.imagemagick.org/script/index.php
Imagemagick是一套小型的圖片處理軟體
最常用在網頁縮圖上 也可以將圖片加上外框
適合想做縮圖 又不會或不想用GD的人 語法相當容易好用
而最常使用的就是convert.exe…先說一下我的安裝好了
我是安裝在windows2003 server 使用linux的朋友安裝可能要自己解決了...
我下載下來後安裝到C:/ImageMagick/
然後在php裡面只要使用exec(”C:/ImageMagick/convert.exe 參數”) 就可以使用了
以下C:/ImageMagick/convert.exe 簡寫成convert當然你也可以define成常數
例如:exec("convert -resize 64×64 test.jpg test1.jpg”)就可以將test.jpg改成
64×64大小存到test1.jpg
這是成比例縮放的所以可能不是剛好64×64
convert -resize 64×64\! 就是不成比例的
接下來我就介紹我最常使用的也是官網用的縮圖指令
convert -resize x300 -resize 300x^< -resize 50% -gravity center -crop 150×
150+0+0 +repage
這可以從圖片中間縮出一張150×150的縮圖 不成比例的部分會切除 他是利用先切一張
300×300的做法
不過這使用上有時候會有bug因為圖小於300×300就會有問題
所以我配合上自己檢查寫了下面的語法
$im = getimagesize($img_src_path);
if($im[0]*0.7>$im[1]){
exec(convert -resize x245 -gravity center -crop 350×245+0+0 +repage
$img_src_path $conv_img_path”);
}
else{
exec(convert -resize 350x -gravity center -crop 350×245+0+0 +repage
$img_src_path $conv_img_path”);
}
上面這是$im[0],$im[1]其實就是圖片的寬與高
我這裡是想要切出一個10:7的350×245圖片所以乘以0.7
可以根據你想切的圖比例及大小填入
$img_src_path就是原圖路徑 $conv_img_path就是縮完後路徑
我自己使用這個語法是沒有遇到什麼問題
其他的使用可以參考
http://www.imagemagick.org/Usage/
諸如加文字 外框 浮水印 旋轉 組合 切圖 …
--
如燕盤旋而來的思念 如燕盤旋而來的思念 如燕盤旋而來的思念
總在凌晨四點 唯有凌晨四點 才能訴說最美麗的語言
http://tn801534.blogdns.net
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.211.217.211
※ 編輯: tn801534 來自: 218.211.217.211 (12/12 16:44)
→ gpmm :轉圖非常非常吃效能啊… orz 12/12 23:10
推 appleboy46 :我在想網路上提供相簿服務的,都會是使用這個方法? 12/13 01:18
推 mosquito520 :其實...可以不用這麼辛苦=.= 12/13 01:22
→ mickfang :樓上跟我想的一樣,PHP把它給整合了,我也是偶然看到 12/13 08:02
→ tn801534 :整合還是要自己安裝.而且改寫成OO反而複雜了= =... 12/13 10:21
推 KC73 :經驗分享,上傳的圖一定要轉,就算尺寸已經符合要求. 12/13 23:39