ImageMagick 在windows上的使用

Posted snakejia

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ImageMagick 在windows上的使用相关的知识,希望对你有一定的参考价值。

1.新老版本区别

老版本的ImageMagick,使用的是convert.exe。
新版本使用的是magick.exe.

区别就是在使用的时候,命令不一样

convert -quality 75%   D:/1.jpg  E:/1.jpg
magick -quality 75%   D:/1.jpg  E:/1.jpg

没有做更多的测试我现在实际用到的是:
新版本现在是7.0.7 http://www.imagemagick.org/script/download.php
老版本是6.2.7 https://pan.baidu.com/s/1gfpPo1X

2.Why???

因为windows系统有同样的一个命令,convert。估计是基于这个考虑,ImageMagick才把convert换成了magick。

3.为什么使用老版本

现在直接使用java通过调用cmd的方式来调用imageMagick,一直没有成功。原因没找到。

String command = "cmd /c magick -quality 75% E:/1.jpg E:/2.jpg"; 
Process p = null;  
Runtime run = Runtime.getRuntime();  

try {  
    p = run.exec(command);  
    System.out.println(command);
    p.waitFor();  
    in = p.getInputStream();  
    BufferedReader read = new BufferedReader(new InputStreamReader(in));  
    String result = read.readLine();  
    System.out.println("INFO:"+result); 
} catch (Exception e) {  
    e.printStackTrace();  
}  

而且,之前在linux里面使用的im4java来调用ImageMagick的,im4java,,,不支持新版本。im4java比较老了,应该是在ImageMagick新版本之前就不更新了,所以im4java和新版本的ImageMagick不兼容。
所以,选择使用老版本 。

4.im4java的使用

引入依赖

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

压缩图片的java方法

long zoomstart,zoomend;
zoomstart = System.currentTimeMillis();
start = System.currentTimeMillis();
IMOperation operation = new IMOperation();
operation.addImage(orgfileName);
operation.quality(0.1);
operation.addImage(zoomfileName);
ConvertCmd cmd = new ConvertCmd();
cmd.setSearchPath("C:\\Program Files (x86)\\ImageMagick-6.2.7-Q16");  //Windows需要设置,Linux不需要
cmd.run(operation);
zoomend = System.currentTimeMillis();  
System.out.println("生成压缩图片时间 start time:" + zoomstart+ "; end time:" + zoomend+ "; Run Time:" + (zoomend - zoomstart) + "(ms)");

以上是关于ImageMagick 在windows上的使用的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 上缺少 ImageMagick X11 的 Rails 安装

ImageMagick消除背景噪音

使用 php/windows 安装 ImageMagick 扩展

使用 Windows 7 在 XAMPP 1.8.3 上运行 ImageMagick

我应该将哪些文件复制到我的项目中以使用 ImageMagick?或如何在 Windows 上使用 MinGW 编译 ImageMagick?

在 Windows 10 中使用 ImageMagick 连接多个 TIFF 电影