在Java中将位图图像转换为未压缩的tif图像

我正在尝试将位图图像转换为未压缩的tif文件,以便与Tesseract OCR引擎一起使用。

我可以使用这个方法生成一个压缩的tif文件……

final BufferedImage bmp = ImageIO.read(new File("input.bmp")); ImageIO.write(bmp, "jpg", new File("output.tif")); 

当“jpg”更改为tif时,这会产生一个空的tif文件,因为这些文件是在Java Advanced Imaging(JAI)中处理的。

如何创建未压缩的tif图像? 我应该解压缩上面代码生成的tif图像还是有其他方法来处理转换过程?

提供的任何示例都将非常感谢。

谢谢

kingh32

您可以使用ImageWriteParam禁用压缩:

 TIFFImageWriterSpi spi = new TIFFImageWriterSpi(); ImageWriter writer = spi.createWriterInstance(); ImageWriteParam param = writer.getDefaultWriteParam(); param.setCompressionMode(ImageWriteParam.MODE_DISABLED); ImageOutputStream ios = ImageIO.createImageOutputStream(new File("output.tif")); writer.setOutput(ios); writer.write(null, new IIOImage(bmp, null, null), param); 

在我面对tiff图像阅读和转换与jai的问题之前的某个时间。 我发现它需要安装支持在jai中处理tiff图像,然后它对我来说工作正常你也可以在这里找到它: https : //cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/ CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jaiio-1.0_01-oth-JPR@CDS-CDS_Developer

并安装在一个jvm然后它也适合你。 你也可以看看Java / JAI – 保存灰度图像