Magick++ - чтение изображений JPEG2000
Я пытаюсь читать изображения JPEG2000 в Magick++ (C++ API ImageMagick). Чтобы прочитать изображение, я использую следующий код:
Image img("path/to/my/image.jp2");
Но когда я пытаюсь это сделать, ImageMagick выдает исключение и не загружает изображение. Я извлекаю изображения из файлов PDF. Может быть, что-то отличается от обычных изображений JPEG2000? Чтобы извлечь изображения, я читаю поток объектов Image, которые имеют JPXDecode-фильтр, и сохраняю их в файл.
Надеюсь, кто-нибудь может мне помочь!
1 ответ
ImageMagick использует пакет под названием JasPer для работы с JPEG2000. Согласно странице википедии на OpenJpeg, JasPer не полностью поддерживает спецификацию JPEG2000. У меня есть несколько извлеченных JPEG2000, которые прекрасно открываются в QuickTime, но не удается декодировать с помощью ImageMagick.
У меня были лучшие результаты с использованием OpenJpeg для декодирования Jpeg2000. Интерфейс менее гибкий, он конвертируется в PNG и BMP.