4

我正在尝试将位图图像转换为未压缩的 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 高级成像 (JAI) 中处理的。

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

提供的任何示例将不胜感激。

谢谢

国王h32

4

2 回答 2

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);
于 2010-10-02T13:18:01.717 回答
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 - 保存灰度图像

于 2011-01-13T07:25:24.133 回答