Pergunta

Estou tentando converter uma imagem de bitmap em um arquivo TIF não compactado para uso com o mecanismo TESSERACT OCR.

Eu posso usar este método para produzir um arquivo TIF compactado ...

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

Isso produz um arquivo TIF vazio quando o "JPG" é alterado para TIF, pois esses arquivos são tratados em Java Advanced Imaging (JAI).

Como posso criar uma imagem TIF não compactada? Devo descomprimir a imagem TIF produzida a partir do código acima ou há outra maneira de lidar com o processo de conversão?

Quaisquer exemplos fornecidos seriam muito apreciados.

Obrigado

Kingh32

Foi útil?

Solução

Você pode usar ImageWriteParam Para desativar a compactação:

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);

Outras dicas

Algum tempo antes de eu enfrentar os problemas com as imagens do TIFF lendo e conversão com Jai. Descobri que ele precisa instalar o suporte para trabalhar com imagens TIFF em JAI, então funciona bem para mim, você também pode obtê -lo aqui: 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_develoer

e instale em uma JVM e também funcionará para você. Você também pode dar uma olhada aquiJava / jai - salve uma imagem em escala de cinza

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top