Я не могу получить ImageReaderByFormatName ("jpeg-lossless") - PullRequest
3 голосов
/ 14 апреля 2011

Я пытаюсь декодировать JPEG без потерь, используя библиотеку JAI_ImageIO и следующий вызов Java:

ImageIO.getImageReadersByFormatName("jpeg-lossless").hasNext()

приводит к «нулю».

ПРИМЕЧАНИЕ.мой каталог jre / lib / ext.

Я не знаю, достаточно ли читателя JPEG для чтения JPEG без потерь или требуется установить другое считывающее устройство.

Когда я перечисляю FormatNames, т.е.:

ImageIO.getReaderFormatNames()

Я получаю следующие форматы:

[raw, jpeg, tif, WBMP, PNM, JPG, DICOM, wbmp, JPEG, PNG, jpeg 2000, 
tiff, BMP, JPEG2000, RAW, jpeg2000, GIF, TIF, TIFF, jpg, bmp, pnm, 
png, JPEG 2000, gif]

При попытке использовать программу чтения JPEG2000 я получаю следующее исключение:

java.lang.RuntimeException: File is neither valid JP2 file nor valid JPEG 2000 codestream
at com.sun.media.imageioimpl.plugins.jpeg2000.J2KReadState.initializeRead(J2KReadState.java:696)
at com.sun.media.imageioimpl.plugins.jpeg2000.J2KReadState.<init>(J2KReadState.java:209)
at com.sun.media.imageioimpl.plugins.jpeg2000.J2KImageReader.read(J2KImageReader.java:449)
at javax.imageio.ImageReader.read(ImageReader.java:940)

Когда я пытаюсь

ImageIO.read(file)

напрямую, я получаю исключение org.dcm4cheri.image.ConfigurationException.

Ответы [ 2 ]

2 голосов
/ 17 апреля 2011

ОК, я нашел ответ на свою конкретную проблему и считаю, что он решит более общую проблему, касающуюся правильной установки JAI_ImageIO, по крайней мере, в * операционной системе на основе NIX.

После прочтения следующего ( Неясное место на WWW ) и попытки всех трех вариантов установки JAI_ImageIO, описанных здесь . (Я должен был также упомянуть, что я работаю на 64-битной платформе Debian 6.0.)

После установки с руководством"тип установки" я понял, что моя переменная LD_LIBRARY_PATH не была выбрана. Поэтому я решил форсировать проблему и добавить мягкую ссылку на libclib_jiio.so в моем / usr / lib. И вот, это сработало.

Я использовал предоставленный код здесь , чтобы определить, правильно ли был установлен мой JAI_ImageIO, и когда он установлен правильно, вы должны увидеть в выводе форматы / провайдеры "JPEG-LOSSLESS"!

Спасибо за предложения. Я попытаюсь расширить вопрос, чтобы сделать его более общим для проблемы установки JAI_ImageIO pro

0 голосов
/ 14 апреля 2011

Я не думаю, что jpeg-lossless является допустимым форматом для JAI.Попробуйте перечислить доступные форматы:

String[] formats =  ImageIO.getReaderFormatNames();
for ( String format : formats ) {
    System.out.println(format);
}

Я думаю, что вы на самом деле хотите «JPEG2000».

Вы также только что попробовали ImageIO.read (файл).Это должно успешно прочитать файлы DICOM, если у вас установлен JAI.

...