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