ENIX.DQ 發表於 2020-6-23 09:44:12

Classic ASP 圖形處理(合併)使用 ImageMagick

平台:

IIS10+Classic asp 3.0
安裝 ImageMagick For IIS的套件


目的

以圖片B作為背景圖,將圖片A合併於圖片B的正中央

準備:

圖片A 為任意解析度圖片




圖片B 為一張 640x480的圖片,作為底圖





流程說明:

A.先使用"-adaptive-resize"將圖片A轉為符合 640x480 的圖片 (-adaptive-resize將自動判定高度寬度,不會變形,不會裁減)
B.然後再使用"-composite","-gravity" , "center" 將圖片A合併到圖片B的指定位置上

程式碼:


A: 圖片A轉檔



fullImg1 = "C:\inetpub\wwwroot\ImageA.jpg"
'圖片A 在磁碟機上的完整路徑,請注意是否有設置好讀寫權限,這裡因為偷懶,就以直接複寫原圖的方式作處理,
'實務操作可以存成另一張圖片

Img.Convert "-auto-orient" , "-adaptive-resize" , "640x480" , "-quality" , "95" ,fullImg1 , fullImg1


'原始圖片寬度或高度小於 640x480,圖片將會被拉大為寬度符合640px或高度符合480px
'如果原始圖片小於 640x480,卻不想要圖片被拉寬,可以將參數中的 "640x480" 改為 ">640x480"
'這樣轉檔時,就只會處理寬度或高度大於 640x480的圖片
'"-auto-orient" 此參數會自動調整圖片旋轉角度,某些圖片的EXIF參數中包含了旋轉的資訊,原始圖片打開時觀看角度正常,但是轉檔時的寬高會被誤判
'使用此參數將依照EXIF資訊 先行旋轉處理,如此可避免寬高誤判問題。
'使用數位相機拍攝的照片 EXIF參數容易有旋轉資訊







B: 合併圖片


fullImg1 = "C:\inetpub\wwwroot\ImageA.jpg"'圖片A 在磁碟機上的完整路徑,請注意是否有設置好讀寫權限
ResultImg = "C:\inetpub\wwwroot\ResultImg.jpg"' 合併結果 圖片檔案的位置
backimg = "C:\inetpub\wwwroot\BackImg.jpg"   '圖片B(背景圖) 在磁碟機上的完整路徑,請注意是否有設置好讀寫權限

Img.convert"-composite","-gravity" , "center" , backimg , fullImg1 ,ResultImg






合併後的結果圖:






小張圖片(不變更大小):




小張圖片(不變更大小)的合併結果:






頁: [1]
查看完整版本: Classic ASP 圖形處理(合併)使用 ImageMagick