Преобразование растрового изображения в несжатое TIF-изображение в Java - PullRequest
4 голосов
/ 02 октября 2010

Я пытаюсь преобразовать растровое изображение в несжатый файл TIF для использования с механизмом распознавания текста Tesseract.

Я могу использовать этот метод для создания сжатого файла TIF ...

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

Это создает пустой файл tif, когда «jpg» изменяется на tif, поскольку эти файлы обрабатываются в Java Advanced Imaging (JAI).

Как мне создать несжатое изображение tif? Должен ли я распаковать tif-изображение, полученное из приведенного выше кода, или есть другой способ обработать процесс преобразования?

Любые представленные примеры будут высоко оценены.

Спасибо

kingh32

Ответы [ 2 ]

3 голосов
/ 02 октября 2010

Вы можете использовать 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);
0 голосов
/ 13 января 2011

Некоторое время назад я столкнулся с проблемами при чтении и конвертировании изображений в формате tiff с помощью jai.Я обнаружил, что нужно установить поддержку для работы с изображениями TIFF в jai, тогда он отлично работает для меня, вы также можете получить его здесь: 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 - сохранить изображение в оттенках серого

...