Преобразование tiff в буферное изображение (Java)

Мне нужно преобразовать файл tiff в BufferedImage. Я написал следующий код:

String filepath = "C:\\tiffFolder\\";
String filename = "myTiffImage.tif";
File myFile = new File (filepath + filename); 
BufferedImage img = ImageIO.read(myFile);

Я точно знаю, что myFile правильно создан: проблема в том, что после четвертой строки кода img все равно null.

Что я делаю неправильно? Большое спасибо!

Edit

Решенный, я использовал следующий код:

FileSeekableStream stream = new FileSeekableStream(filepath + filename);
TIFFDecodeParam decodeParam = new TIFFDecodeParam();
decodeParam.setDecodePaletteAsShorts(true);
ParameterBlock params = new ParameterBlock();
params.add(stream);
RenderedOp image1 = JAI.create("tiff", params);
BufferedImage img = image1.getAsBufferedImage();

Ответ 1

Вы пытаетесь прочитать формат файла, который не поддерживается ImageIO.

Как отметил johnchen902, ImageIO.getReaderFileSuffixes() возвращает список поддерживаемых суффиксов. tiff не входит в этот список. Вот почему вы не можете это прочитать. Некоторые внешние библиотеки могут вам помочь. Например: API расширенной визуализации Java поддерживает TIFF. Подробнее здесь.