今年初寫了一篇《用PHP繪圖功能在網站上輸出圖片》,記錄的是使用PHP語言來在網站上加入圖片,圖片可以根據需要繪制,例如設置尺寸、增加文字、粘貼圖片、旋轉拉伸等,功能很強大,然後我們在多個網站上都進行了應用實施。
現在又有一個新需求:需要批量處理一些圖片,進行尺寸調整、拼接合并等,可以用前面提到的PHP程序來做,但在網上也找到更簡單方便的Linux命令行方式,就是使用ImageMagick的convert命令。
例如:
convert -resize 40x40 source.png destination.png
resize還有很多參數用法:
-resize 100x100 高度和寬度比例保留最高值,高比不變 100x100^ 高度和寬度比例保留最低值,寬高比不變 100x100! 寬度和高度強制轉換,忽視寬高比 100x100> 更改長寬,當圖片長或寬超過規定的尺寸 100x100< 更改長寬 隻有當圖片長寬都超過規定的尺寸 100x100^> 更改長寬,當圖片長或寬超過規定的尺寸。高度和寬度比例保留最低值 100x100^< 更改長寬,隻有當圖片長寬都超過規定的尺寸。高度和寬度比例保留最低值 100 按指定的寬度縮放,保持寬高比例 x100 按指定高度縮放,保持寬高比 -gravity NorthWest, North, NorthEast, West, Center, East, SouthWest, South, SouthEast截取用的定位指令,定位截取區域在圖片中的方位
-resize與-gravity、-extent結合起來的用法,縮放+居中+補白:
convert -resize 40x40 -background white -gravity center -extent 40x40 source.png destination.png
Linux下批量處理的辦法:
for file in *.png; do echo $file convert $file -resize 40 $file #echo $file done
這個convert還有很多高級功能我們還沒有用到,應該比PHP程序裡面的函數更強大,以後在需要的時候再嘗試。
2022年9月補充:《用Magick命令調整APNG動畫圖片大小》
自由标簽
评论