java处理特殊图片格式转为jpg

  在某一天上班时突然接到了一个需求,扫描仪扫描图片合成一个pdf,pdf传到后台需要吧pdf中的图片提取出来,但是提取出来后发现图片格式是kiff格式,这样格式的图片送给ocr识别,ocr不认识这个格式会报错,所以需要转码直接把kiff转成jpg。

  不要直接把后缀改成jpg,这样虽然图片可以打开,但是图片的本质还是kiff还是不行。

  这时我们需要两个jar包:

  

  https://repository.jboss.org/maven2/com/sun/media/jai-codec/1.1.3/  下载链接

注意该方法Java8以下可以使用,Java8以上会报错无法使用 ,Java8以下用法请往下看

/**
 * 图片文件格式转换   java8以下此方法可用
 */
public static String tiffTurnJpg(String filePath){
		RenderedOp file = JAI.create("fileload", filePath);//读取图片文件
		OutputStream ops = null;
		String filename = filePath.substring(0, filePath.lastIndexOf(".")) + ".jpg";
		try {
			ops = new FileOutputStream(filename);
			//文件存储输出流
			JPEGEncodeParam param = new JPEGEncodeParam();
			ImageEncoder image = ImageCodec.createImageEncoder("JPEG", ops, param); //指定输出格式
			//解析输出流进行输出
			image.encode(file);
			//关闭流
			ops.close();
			return filename;
		} catch (FileNotFoundException e) {
			LOG.error("", e);
			return null;
		} catch (IOException e) {
			LOG.error("", e);
			return null;
		}
	}

Java8的写法:

public static String tiffTurnJpg(String filePath){
		RenderedOp file = JAI.create("fileload", filePath);//读取图片文件
		OutputStream ops = null;
		String filename = filePath.substring(0, filePath.lastIndexOf(".")) + ".jpg";
		try {
			ops = new FileOutputStream(filename);
			//文件存储输出流
			ImageIO.write(file, "jpeg", ops);
			//关闭流
			ops.close();
			return filename;
		} catch (FileNotFoundException e) {
			LOG.error("", e);
			return null;
		} catch (IOException e) {
			LOG.error("", e);
			return null;
		}
	}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值