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

时间:2010-10-02 11:03:52

标签: java image tiff jai

我正在尝试将位图图像转换为未压缩的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

2 个答案:

答案 0 :(得分:3)

您可以使用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);

答案 1 :(得分:0)

在我面对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 - save an image gray-scaled