文章首發於【博客園-陳樹義】,點擊跳轉到原文Java 圖片處理解決方案:ImageMagick 快速入門教程。
ImageMagick介紹
ImageMagick是一個免費的創建、編輯、合成圖片的軟件,可以實現圖片切割、顏色替換、圖片縮略圖、圖片水印等各種效果。ImageMagick是免費開源軟件,支持大多數操作系統,包括Linux、Windows操作系統。ImageMagick的大多數功能的使用都來源於命令行工具。
ImageMagick快速入門
安裝ImageMagick
到官網下載相應的安裝包。
在安裝過程中記得勾選Install legacy utilities(e.g. convert)
選項。
配置環境變量
將ImageMagick安裝目錄設置到PATH系統變量中
打開命令行運行magick -help
測試是否配置成功
使用ImageMagick實現旋轉
ImageMagick圖片處理命令的格式如下:
imagick deal_type origin_pic_path deal_param dest_pic_path
- deal_type:圖片處理類型。ImageMagick提供了幾十種圖片處理類型,包括:decorate(邊框)、convert(轉換)、montage(拼接)、animation(動畫)等,你可以在Features and Capabilities查看更多圖片處理類型。
- origin_pic_path:源圖片路徑。
- deal_param:處理參數。不同的圖片處理類型有不同的處理參數。
- dest_pic_path:目標圖片路徑。
運行下面的命令將圖片順時針旋轉90度:
magick doraemon.jpg -rotate 90 doraemon_rotate.jpg
在Java中使用ImageMagick
開始前請先確認JDK、Maven正確安裝:
引入依賴
IM4Java是ImageMagick的Java API包,它將Java代碼轉化成對ImageMagick的命令行調用。
<dependency>
<groupId>org.im4java</groupId>
<artifactId>im4java</artifactId>
<version>1.4.0</version>
</dependency>
調用IM4Java實現旋轉
IM4Java的作用是將Java代碼轉成對ImageMagick的命令行調用,因此IM4Java API與ImageMagick的命令有一一對應的關系。
- ImageMagick的圖片處理類型(deal_type)對應xxxCmd,如:
convert
處理類型對應ConvertCmd
,montage
處理類型對應MontageCmd
。 - ImageMagick的圖片處理參數(deal_param)對應IMOperation方法,如:
-rotate 90
參數對應operation.rotate(90d)
,-resize 900x600
參數對應operation.resize(900,600)
。
運行以下代碼可以將圖片順時針旋轉90度。
IMOperation operation = new IMOperation();
operation.addImage("C:\\Users\\Administrator\\Desktop\\imagemagick\\doraemon.jpg");
operation.rotate(90d);
operation.addImage("C:\\Users\\Administrator\\Desktop\\imagemagick\\doraemon_rotate.jpg");
ConvertCmd cmd = new ConvertCmd();
cmd.setSearchPath("C:\\Program Files\\ImageMagick-7.0.5-Q16"); //Windows需要設置,Linux不需要
cmd.run(operation);
運行程序后可以看到圖片已經旋轉90度。
參考資料
關鍵詞
Java 圖片處理
Java 圖片處理解決方案
Java 圖片加水印
Java 圖片圓角
Java 圖片裁切
Java 圖片等比縮小
ImageMagick GraphicsMagick 區別
ImageMagick 旋轉