歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Java裁剪圖片(im4Java)

Java裁剪圖片(im4Java)

日期:2017/3/1 11:18:13   编辑:Linux編程

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);
}

Copyright © Linux教程網 All Rights Reserved