ENIX.DQ 發表於 2012-4-30 16:39:54

Classic ASP 圖形處理(縮圖)使用 ImageMagick

前言:
本說明提供一個方法,如何在classic ASP環境(Windows 2008R2 +64bit)下,使用ImageMagick對圖片進行resize動作

作業系統:Windows 2008 R2 SP1 (64bit)
Web Server:IIS 7.5

安裝套件:ImageMagick
ImageMagick官方網站:http://www.imagemagick.org/script/index.php

本次範例下載安裝的檔案:ImageMagick-6.7.6-7-Q8-windows-dll.exe (各安裝檔案版本差異處,請自行參考官方網站)

安裝過程中要勾選「Install ImageMagicObject OLE Control for VBscript,Visual Basic, and WSH」


參考用程式碼:


'建立ImageMagick物件
Set img = CreateObject("ImageMagickObject.MagickImage.1")
'設定轉出檔案位置及檔名
Spath      =      Server.MapPath(".") &      "\newpic.jpg"
'以下為各個參數說明
'      "-adaptive-resize"          --resize參數
'      "300x300"                  --指定轉出圖片解析度最大為300x300 (等比例放大)
'      "-quality","95"          --指定JPEG壓縮輸出的品質 為95
'      server.mappath("testpic1.jpg")      --來源圖片位置
'      Spath                              --轉出圖片位置
Img.Convert "-adaptive-resize","300x300","-quality","95",server.mappath("testpic1.jpg"),Spath
Set Img = nothing

原始圖片:(1024x768)



RESIZE後的圖片(300x225,等比例壓縮,不變型,所以圖片解析度並非參數設定中的300x300)




詳細參數使用請參考官方網網頁:
http://www.imagemagick.org/script/command-line-options.php

-resize參數說明:
http://www.imagemagick.org/script/command-line-options.php#resize
-adaptive-resize參數說明:
http://www.imagemagick.org/script/command-line-options.php#adaptive-resize

ENIX.DQ 發表於 2012-5-2 10:02:36

補充~

resize 參數指定的解析度,會把小於指定解析度的圖片給"放大"到指定尺寸
對於「只要產生縮圖」的應用上會有問題,該程式提供特別的參數格式,可以設定只有在圖片大於某個解析度,才進行RESIZE的動作。

以本文1F的例子來說,原本RESIZE的解析度限制參數是 "300x300"
只要在最後加上一個 >符號,就可以限制只有圖片寬度或長度大於300pixel的時候,才會進行RESIZE動作。修改後的參數為 "300x300>"

關於解析度的參數格式寫法,可以參考 Image Geometry



http://www.imagemagick.org/script/command-line-processing.php?ImageMagick=7nhfhq44k7l623bddda0nru816#geometry
頁: [1]
查看完整版本: Classic ASP 圖形處理(縮圖)使用 ImageMagick