[心得] Imagemagick的縮圖使用

看板PHP作者 (踢恩)時間17年前 (2008/12/12 16:38), 編輯推噓3(304)
留言7則, 6人參與, 最新討論串1/2 (看更多)
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)

12/12 23:10, , 1F
轉圖非常非常吃效能啊… orz
12/12 23:10, 1F

12/13 01:18, , 2F
我在想網路上提供相簿服務的,都會是使用這個方法?
12/13 01:18, 2F

12/13 01:22, , 3F
其實...可以不用這麼辛苦=.=
12/13 01:22, 3F

12/13 08:02, , 5F
樓上跟我想的一樣,PHP把它給整合了,我也是偶然看到
12/13 08:02, 5F

12/13 10:21, , 6F
整合還是要自己安裝.而且改寫成OO反而複雜了= =...
12/13 10:21, 6F

12/13 23:39, , 7F
經驗分享,上傳的圖一定要轉,就算尺寸已經符合要求.
12/13 23:39, 7F
文章代碼(AID): #19GYCY0Z (PHP)
討論串 (同標題文章)
文章代碼(AID): #19GYCY0Z (PHP)