技术杂谈程序员

GraphicsMagick图片压缩工具类

2015-12-21  本文已影响699人  Devid

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

前提条件

<dependency>
    <groupId>org.im4java</groupId>
    <artifactId>im4java</artifactId>
    <version>1.4.0</version>
</dependency>   

实现

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

说明

上一篇下一篇

猜你喜欢

热点阅读