im4java 处理图片

  1. windows下安装imagemagick
  2. im4java下载地址:http://sourceforge.net/projects/im4java/files/im4java-1.4.0/im4java-1.4.0-bin.tar.bz2/download

操作完上面2步,下面就很好操作了。因为im4java是基于imagemagick的commandline进行调用的java接口,不像jmagick那样用java jni调用本地imagemagick的api那么复杂。其实安装imagemagick在任何平台都是一样的安装,在linux下面有rpm包,安装那个包,指定目录就可以了。windows一样,安装并指定安装路径就可以了。下面上代码


 public static String FROM        = "E:/project/Test/src/com/8301.jpg";

public static String TO          = "E:/project/Test/src/com/8301_new.jpg";

public static String IMAGEMAGICK = "D:/Program Files (x86)/ImageMagick-6.8.7-Q16";

/**
 * @param args
 */
public static void main(String[] args) {
    handlerImage(1000, 1000);
}

public static void handlerImage(int width, int height) {
    IMOperation op = new IMOperation();
    op.addImage(FROM);
    op.resize(width, height);//压缩图片  
    op.addImage(TO);
    ConvertCmd convert = new ConvertCmd();
    convert.setSearchPath(IMAGEMAGICK);
    try {
        convert.run(op);
    } catch (IOException | InterruptedException | IM4JavaException e) {
        e.printStackTrace();
    }
}

<!-- lang: java -->
/** 
 *  
 * 根据坐标裁剪图片 
 *  
 * @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);  
}  



<!-- lang: java -->
/** 
 * 给图片加水印 
 * @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);  
}  

参考文章:im4java 图片处理代码参考

你可能感兴趣的:(Im4java,处理图片)