ImageMagick使用for java(im4java)
簡介:用於讀、寫、處理圖片檔案,支援89種格式的圖片檔案,利用imageMagick可以根據web應用程式動態生成圖片,也可以將一個或者一組圖片改變大小、旋轉、銳化、減色、增加特效等操作,並對操作結果進行儲存(可以設定儲存格式)。ImageMagick是免費軟體:全部原始碼開放,可以自由使用,複製,修改,釋出。
ImageMagick命令:http://wenku.baidu.com/view/078062b069dc5022aaea007f.html
各種語言介面:(見http://www.imagemagick.org/script/api.php)
Ada:G2F C:MagickWand 和MagickCore Ch:ChMagick COM+:ImageMagickObject C++:Magick++ java:JMagick和Im4java
開源中國社群中原始碼檢視:http://www.oschina.net/code/explore/ImageMagick-6.6.6-6
使用方法:首先要安裝ImageMagick這個工具,安裝好這個工具後,再下載im4java包放到專案lib目錄裡就行了。
ImageMagick java 介面(im4java api):http://im4java.sourceforge.net/api/ (如果進不了就從http://www.imagemagick.org/script/api.php =>java=>im4java 進入)
im4java原始碼下載:http://sourceforge.jp/projects/sfnet_im4java/downloads/im4java-1.3.2/im4java-1.3.2-src.tar.bz2/
- public class ImageTools {
- /**
- * ImageMagick的路徑
- */
- public static String imageMagickPath = null;
- static {
- /**
- *
- * 獲取ImageMagick的路徑
- */
- Properties prop = new PropertiesFile().getPropertiesFile();
- //linux下不要設定此值,不然會報錯
- imageMagickPath = prop.getProperty("imageMagickPath");
- }
- /**
- *
- * 根據座標裁剪圖片
- *
- * @param srcPath 要裁剪圖片的路徑
- * @param newPath 裁剪圖片後的路徑
- * @param x 起始橫座標
- * @param y 起始縱座標
- * @param x1 結束橫座標
- * @param y1 結束縱座標
- */
- public static void cutImage(String srcPath, String newPath, int x, int y, int x1, int y1) throws Exception {
- int width = x1 - x;
- int height = y1 - y;
- IMOperation op = new IMOperation();
- op.addImage(srcPath);
- /**
- * width: 裁剪的寬度
- * height: 裁剪的高度
- * x: 裁剪的橫座標
- * y: 裁剪的挫座標
- */
- op.crop(width, height, x, y);
- op.addImage(newPath);
- ConvertCmd convert = new ConvertCmd();
- // linux下不要設定此值,不然會報錯
- convert.setSearchPath(imageMagickPath);
- convert.run(op);
- }
- /**
- *
- * 根據尺寸縮放圖片
- * @param width 縮放後的圖片寬度
- * @param height 縮放後的圖片高度
- * @param srcPath 源圖片路徑
- * @param newPath 縮放後圖片的路徑
- */
- public static void cutImage(int width, int height, String srcPath, String newPath) throws Exception {
- IMOperation op = new IMOperation();
- op.addImage(srcPath);
- op.resize(width, height);
- op.addImage(newPath);
- ConvertCmd convert = new ConvertCmd();
- // linux下不要設定此值,不然會報錯
- convert.setSearchPath(imageMagickPath);
- convert.run(op);
- }
- /**
- * 根據寬度縮放圖片
- *
- * @param width 縮放後的圖片寬度
- * @param srcPath 源圖片路徑
- * @param newPath 縮放後圖片的路徑
- */
- public static void cutImage(int width, String srcPath, String newPath) throws Exception {
- IMOperation op = new IMOperation();
- op.addImage(srcPath);
- op.resize(width, null);
- op.addImage(newPath);
- ConvertCmd convert = new ConvertCmd();
- // linux下不要設定此值,不然會報錯
- convert.setSearchPath(imageMagickPath);
- convert.run(op);
- }
- /**
- * 給圖片加水印
- * @param srcPath 源圖片路徑
- */
- public static void addImgText(String srcPath) throws Exception {
- IMOperation op = new IMOperation();
- op.font("宋體").gravity("southeast").pointsize(18).fill("#BCBFC8")
- .draw("text 5,5 juziku.com");
- op.addImage();
- op.addImage();
- ConvertCmd convert = new ConvertCmd();
- // linux下不要設定此值,不然會報錯
- convert.setSearchPath(imageMagickPath);
- convert.run(op, srcPath, srcPath);
- }
- public static void main(String[] args) throws Exception {
- // cutImage("D:\\test.jpg", "D:\\new.jpg", 98, 48, 370,320);
- // cutImage(200,300, "/home/1.jpg", "/home/2.jpg");
- addImgText("//home//1.jpg");
- }
- }
注意事項:如果是在windows下執行,則需要配置ImageMagick的路徑(現在很多安裝程式都不需要設定,已經自動幫你設定好了):
在環境變數path中新增(C:\Program Files\ImageMagick-6.7.5-Q16;)
或者
- public static String imageMagickPath;
- Properties prop = new PropertiesFile().getPropertiesFile();
- imageMagickPath = prop.getProperty("imageMagickPath");
- ConvertCmd convert = new ConvertCmd();
- convert.setSearchPath(imageMagickPath);
在config.properties檔案裡了,內容如下所示: imageMagickPath=C:\\Program Files\\ImageMagick-6.7.5-Q16;
如果是在linux平臺下,千萬不需要配置,設定了會報錯。
相關文章
- Java裁圖(im4Java)Java
- 使用 Grapicmagick 和 Im4java 處理圖片APIJava
- 在PHP裡很好的使用ImageMagick---convert篇PHP
- 在PHP裡使用 ImageMagick 生成 base64 圖片PHP
- 在 Linux 中使用ImageMagick命令列操作影像檔案Linux命令列
- 安裝PHP ImageMagick筆記PHP筆記
- MAC中用ImageMagick轉換影像Mac
- php5.6 安裝imagemagick和imagickPHP
- 用ImageMagick實現數字盲水印
- nodejs gm ImageMagick Error unable to read fontNodeJSError
- centos7 編譯安裝imagemagick7.1CentOS編譯
- ImageMagick+OpenResty構建圖片處理服務REST
- ImageMagick爆0day漏洞全球伺服器遭殃伺服器
- 採用React + Fabric + ImageMagick 實現大圖片DIY定製React
- linux與windows下 安裝 ImageMagick 及其 php imagick擴充套件LinuxWindowsPHP套件
- 【JAVA】java使用Java
- JAVA使用accessJava
- JAVA使用SizeOfJava
- java使用iteratorJava
- [JAVA] Java switch的使用細節Java
- ElasticSearch Java API使用ElasticsearchJavaAPI
- Java NIO Channel 使用Java
- EasyExcel Java API 使用ExcelJavaAPI
- java中使用protobufJava
- 介面的使用(Java)Java
- Java Stream流使用Java
- 使用java 爬蟲Java爬蟲
- Java列舉使用Java
- 【Java】函式使用Java函式
- 【Java】陣列使用Java陣列
- 【java】Stream的使用Java
- ZooKeeper 使用 Java APIJavaAPI
- 如何在Java中使用Deque? - Java67Java
- java使用JUnit出現java.lang.NullPointerExceptionJavaNullException
- 使用 Java 持久化 APIJava持久化API
- java命令--jmap命令使用Java
- Java中BasicNameValuePair的使用JavaAI
- java使用poi生成excelJavaExcel