JAVA处理tiff图片转为png、jpg等常见格式(ImageMagick)

这几天,有个tiff图片转普通图片格式的需求 ,在网上找了很多,如果用JAVA代码处理的话,图片会失真。所以想如果代码处理不了,是否可用软件来处理,利用java命令行的方式来操作软件,完成需求。答案是可行的!
ImageMagick这个工具就非常的强大!!! https://www.w3cschool.cn/imagemagick_use/可以了解下这个软件的功能。

这个是官网http://www.imagemagick.org/script/download.php,下载windows版本的安装包
JAVA处理tiff图片转为png、jpg等常见格式(ImageMagick)
文章图片

安装就不多说了,安装位置指定之后,后面就默认就好了。下载完之后直接调用下面的命令即可。
JAVA处理tiff图片转为png、jpg等常见格式(ImageMagick)
文章图片

在E盘上用控制台CMD进入
JAVA处理tiff图片转为png、jpg等常见格式(ImageMagick)
文章图片

输入回车
JAVA处理tiff图片转为png、jpg等常见格式(ImageMagick)
文章图片

结果
JAVA处理tiff图片转为png、jpg等常见格式(ImageMagick)
文章图片

图片转换成功。
用JAVA命令行的方式来处理图片:
注意:
在cmd命令行输入的内容封装为数组,以空格划分。
注意以cmd命令行的方式由于安装的时候默认配置了环境变量,类似JDK,所以直接 magick即可,
现在的话需要指定全路径

public static void tiffToPng(String tiffFilePath, String toFilePath) { Process process = null; BufferedReader input = null; String[] cmd = { "D:/Program Files/ImageMagick-7.0.8-Q16/magick", tiffFilePath, toFilePath }; try { process = Runtime.getRuntime().exec(cmd); printMessage(process.getInputStream()); printMessage(process.getErrorStream()); int value = https://www.it610.com/article/process.waitFor(); // 记录执行命令是否成功 if (value == 0) { logger.info("magick exec success:" + cmd); } else { logger.error("magick exec failure:" + cmd); }} catch (Exception e) { e.printStackTrace(); logger.error("magick exec failure:", e); } finally { if (input != null) { try { input.close(); } catch (IOException e) { e.printStackTrace(); } } } }/** * 打印命令执行的结果 * * @param input */ private static void printMessage(final InputStream input) { new Thread(new Runnable() { public void run() { InputStreamReader reader = new InputStreamReader(input); BufferedReader bf = new BufferedReader(reader); String line = null; try { while ((line = bf.readLine()) != null) { logger.info("ImageMagick:" + line); } } catch (IOException e) { e.printStackTrace(); } } }).start(); }public static void main(String[] args) { tiffToPng("E:\\a.tiff", "E:\\c.jpg"); }

测试是可行的。
在linux环境下,下载linux环境对应的安装包即可。给出下面链接
https://imagemagick.org/script/install-source.php
补充一点 ,很重要,默认安装包使用时是不支持tiff格式和jpg转换图片的, 需要在https://www.imagemagick.org/download/delegates/ 先安装tiff 和jpg的对应的编码安装包
JAVA处理tiff图片转为png、jpg等常见格式(ImageMagick)
文章图片

JAVA处理tiff图片转为png、jpg等常见格式(ImageMagick)
文章图片

注意:编译./configure这个命令需要linux 有c++,和g++和编译环境,应该先提前准备这两个环境。
yum -y install gcc-c++
分别到各种的目录先./configure,然后make ,最后make install 。等这两个分别搞定之后,在imagemagick安装包目录先
./configure如果再最后结果
【JAVA处理tiff图片转为png、jpg等常见格式(ImageMagick)】JAVA处理tiff图片转为png、jpg等常见格式(ImageMagick)
文章图片

这两个都是yes之后,就可以make , make install 安装了,最后在/usr/local/bin目录下 即可调试tiff转为jpg的测试了,肯定没问题

    推荐阅读