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 補充~
resize 參數指定的解析度,會把小於指定解析度的圖片給"放大"到指定尺寸
對於「只要產生縮圖」的應用上會有問題,該程式提供特別的參數格式,可以設定只有在圖片大於某個解析度,才進行RESIZE的動作。
以本文1F的例子來說,原本RESIZE的解析度限制參數是 "300x300"
只要在最後加上一個 >符號,就可以限制只有圖片寬度或長度大於300pixel的時候,才會進行RESIZE動作。修改後的參數為 "300x300>"
關於解析度的參數格式寫法,可以參考 Image Geometry
http://www.imagemagick.org/script/command-line-processing.php?ImageMagick=7nhfhq44k7l623bddda0nru816#geometry
頁:
[1]