Java裁圖(im4Java)
ImageMagick和im4java處理圖片,im4java是ImageMagick的一個Java開源介面,使用起來非常方便。
很多網站都會用到對圖片的一些處理,包括圖片的裁剪、給圖片加水印、按比例縮放圖片等操作,用ImageMagick實現這些功能,效能非常好,圖片還不會失真,聚資庫網站,上傳圖片的時候,就是用的這個實現的。
首先要安裝ImageMagick這個工具,安裝好這個工具後,再下載im4java包放到專案lib目錄裡就行了。
注意事項:如果是在windows下執行,則需要配置ImageMagick的路徑,如果是在linux平臺下,則不需要配置。
import java.io.IOException;
import org.im4java.core.ConvertCmd;
import org.im4java.core.IM4JavaException;
import org.im4java.core.IMOperation;
import org.im4java.core.IMOps;
public class CutPic {
public static String imageMagickPath = null;
static{
imageMagickPath="C:\\ImageMagick-6.6.5-Q16 ";
}
/**
* 根據座標裁剪圖片
*
* @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);
}
相關文章
- 使用 Grapicmagick 和 Im4java 處理圖片APIJava
- ImageMagick使用for java(im4java)Java
- 更新:法官裁決Java API不受版權保護JavaAPI
- O'Reilly副總裁Mike Hendrickson:技術圖書出版的未來(圖靈訪談)圖靈
- Qt ——被裁之說QT
- 《網際網路防裁指南》: 熟讀並背誦,就不會被裁!
- java腦圖Java
- [轉帖]Oracle 敗了、谷歌贏了:Java API 版權案最終裁決Oracle谷歌JavaAPI
- java集合腦圖Java
- java路線圖Java
- 巨人網路前副總裁彭程出任第七大道行政總裁
- 驅動總裁是流氓軟體嗎 驅動總裁有捆綁軟體嗎
- 參加長沙Java培訓前景如何?程式設計師30歲會被裁嗎?Java程式設計師
- 工作第一年就被裁?
- 採訪谷歌副總裁Marissa Mayer谷歌
- Novell裁掉部分openSUSE Linux開發者Linux
- Java學習圖譜Java
- Java的圖形列印Java
- java:繪製圖形Java
- Java程式設計:圖Java程式設計
- Java新集合示意圖Java
- Java集合繼承圖Java繼承
- 二分圖(Java)Java
- T2總裁、前任天堂總裁:遊戲業不給美國傷亡事件背鍋遊戲事件
- 驅動總裁是什麼軟體 驅動總裁解除安裝了有影響嗎
- Java版ECharts圖表庫ECharts-JavaJavaEcharts
- 唐僧團隊要裁員,你會裁誰?
- 醫學影像預處理之裁減
- 人工智障?243個機器人被裁機器人
- Google裁掉了最優秀的員工Go
- ios平臺靜態庫大小裁減iOS
- AIG副總裁的辭職信AI
- Java 學習路線圖Java
- java.net結構圖Java
- Java 圖片裁剪,擷取Java
- JAVA學習AWT繪圖Java繪圖
- java知識結構圖Java
- JAVA進階路線圖Java