GraphicsMagick图片压缩工具类

Tip:据说淘宝使用此软件进行图片压缩

前提条件

  • 下载GraphicsMagick
  • 添加Im4Java依赖

    org.im4java
    im4java
    1.4.0
   

实现

public static void compress(String graphicsMagickHome,String sourcePath, String targetPath, double quality) throws InterruptedException, IOException, IM4JavaException {
    GMOperation op = new GMOperation();
    //待处理图片的绝对路径
    op.addImage(sourcePath);
    //图片压缩比,有效值范围是0.0-100.0,数值越大,缩略图越清晰  s
    op.quality(quality);
    //width 和height可以是原图的尺寸,也可以是按比例处理后的尺寸
//        op.addRawArgs("-resize", "100");
    //宽高都为100
    //op.addRawArgs("-resize", "100x100");
    op.addRawArgs("-gravity", "center");
    //op.resize(100, null);
    //处理后图片的绝对路径
    File smallFile = new File(targetPath);
    if (!smallFile.getParentFile().exists()) {
        smallFile.mkdir();
    }
    op.addImage(targetPath);

    // 如果使用ImageMagick,设为false,使用GraphicsMagick,就设为true,默认为false
    ConvertCmd convert = new ConvertCmd(true);
   String osName = System.getProperty("os.name").toLowerCase();
    if (osName.contains("win")) {
        //linux下不要设置此值,不然会报错
        convert.setSearchPath(graphicsMagickHome);
    }
    convert.run(op);
}

说明

  • graphicsMagickHome:GraphicsMagick的home目录,只有windows下需要,linux不需要,传null即可
  • sourcePath: 图像源绝对路径
  • targetPath: 生成图像的目标绝对路径
  • quality:生成图片的质量,0-100.0,根据实际情况自己设定

你可能感兴趣的:(GraphicsMagick图片压缩工具类)