java tiff 黑白_JAVA处理tiff图片转为png、jpg等常见格式(ImageMagick)

这几天,有个tiff图片转普通图片格式的需求 ,在网上找了很多,如果用JAVA代码处理的话,图片会失真。所以想如果代码处理不了,是否可用软件来处理,利用java命令行的方式来操作软件,完成需求。答案是可行的!

ImageMagick这个工具就非常的强大!!!

https://www.w3cschool.cn/imagemagick_use/  可以了解下这个软件的功能。

这个是官网http://www.imagemagick.org/script/download.php,下载windows版本的安装包

2d5424dc04f40c5effbb53b23982f6e1.png

安装就不多说了,安装位置指定之后,后面就默认就好了。下载完之后直接调用下面的命令即可。

8e13d1fe28eccde8f2d363ea53ef1db9.png

在E盘上用控制台CMD进入

fac9ef3a0c4a64a2013edb5bdf8a3560.png

输入回车

fa3466b0aa826e3199f3971b11688c7e.png

结果

4db58f27c6a29b0dddeb5d7fe674db4f.png

图片转换成功。

用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 = 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的对应的编码安装包

17fe2b096796366dc5751c25b2bbf2ff.png

30ff0b62807fa462b030bf682d3ed803.png

注意:编译./configure这个命令需要linux 有c++,和g++和编译环境,应该先提前准备这两个环境。

yum -y install gcc-c++

分别到各种的目录先./configure  ,然后make ,最后make install 。等这两个分别搞定之后,在imagemagick安装包目录先

./configure  如果再最后结果

d738b28f3922400b0b779353b1f36afa.png

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值