Я хочу использовать ImageMagick для конвертации некоторых файлов из jp2 (JPEG-2000) в jpg. Команда для этого хороша, но я не знаю, как включить делегат jp2 в ImageMagick.
Я установил ImageMagick с помощью менеджера пакетов: sudo apt-get install ImageMagick
.
Я использую ImageMagick 6.8.9-9, это самая последняя версия ImageMagick, доступная с apt-get
.
В настоящее время многие основные типы файлов включаются автоматически. Следующие библиотеки имеют встроенную поддержку и перечислены как делегаты:
bzlib cairo djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png rsvg tiff wmf x xml zlib
Изменить : я должен был упомянуть, я пытался преобразования файлов, прежде чем начать спорить с openjpeg-2
. Команда вроде convert input.jp2 output.jpg
дает мне сообщение об ошибке:
convert: нет делегата декодирования для этого формата изображения `JP2 '@ error / constitute.c / ReadImage / 501.
Итак, мне нужно, чтобы jp2 работал. Соответствующая библиотека есть openjpeg-2
, а на странице делегатов ImageMagick есть архив openjpeg-2.0.0.tar.gz
.
Итак, я скачал его и следовал инструкциям по установке, приведенным в установочном файле. Нормальный материал: cmake .
, sudo make install
.
Но теперь, как мне настроить ImageMagick, чтобы он «подхватывал» open-jpeg-2.0.0
? Нужно ли для этого перестраивать ImageMagick из исходного кода? Или есть команда, которую я могу ввести, чтобы получить ImageMagick, чтобы включить его? Или файл, который я должен изменить, и т.д?
Я провел целую вечность, изучая это, прочитал много вопросов и ответов онлайн, но я все еще не взломал это. Это вопрос моих знаний о Linux, а не то, что связано с ImageMagick как таковым , поэтому я был бы очень признателен, если бы кто-то мог помочь мне выяснить, в чем заключается пропущенный шаг. Спасибо.
gm convert in.jp2 out.jpg
Ответы:
Установите
libopenjp2-tools
и используйтеopj_decompress
для преобразования jp2 во что-то другое:Этот пакет содержит инструменты командной строки, позволяющие выполнять конвертацию между несколькими форматами, а также инструменты для кодирования и декодирования видеоформатов motion-jpeg2000:
источник
Я решаю свою проблему с включением делегирования openjp2 в Imagemagick.
Убедитесь, что вы установили:
Теперь при запуске
./configure
вы можете увидеть делегирование openjp2источник
Из моей установки по умолчанию Image Magick 6.8.9.9 из репозиториев Ubuntu 16.04 видно, что Jpeg200 (
.jp2
) полностью поддерживается.Преобразования могут быть сделаны с:
Для параметров командной строки, особенно в отношении параметров кодирования или обработки мозаичных изображений см. онлайн-документацию Image Magick .
Следует отметить, однако, что
jp2
не указан в списке поддерживаемых форматов:Тем не менее, по-видимому, все еще работает нормально.
источник
convert in.jp2 out.jpg
), я получаю сообщение об ошибке, что у меня нет делегата jp2: convert: нет делегата декодирования для этого формата изображения 'JP2' @ error / constitute.c / ReadImage / 501. Я нахожусь на 6.8.9.9 (отconvert --version
: Версия: ImageMagick 6.8.9-9 Q16 x86_64 2017-03-14 imagemagick.org ). Действительно странно, что ваша версия не перечисляет jp2 как формат, но все еще работает! Допустимы ли выходные файлы jpg?libopenjp2-dev
а затем восстановлением из исходного кода, он все еще не работает. Я на 100% застрял до сих пор, к сожалению. Спасибо за ваши ответы, хотя!@arokath Как и вы, мне не удалось найти поддержку jp2 в версии ImageMagick, которую я установил через apt-get (Ubuntu 16.04.1 LTS).
Перед сборкой из исходного кода (следуя документации ImageMagick ) я сначала установил,
libopenjp2-tools
а затемlibopenjp2-7-dev
.Примечание : я не уверен, какой из них добился цели: алфавитное резюме в конце
configure
перечисленной поддержки jp2OpenJP2
, а не то,JP2
что я не заметил, пока не установилlibopenjp2-7-dev
и не переконфигурировал ; вполне возможно, что он работал только с первой библиотекой.Кроме того
./configure
,make
иmake install
я обнаружил , что мне нужно (как это было предложено в документации) , чтобы «настроить динамический компоновщик»:sudo ldconfig /usr/local/lib
.Теперь вывод
/usr/local/bin/identify -list format
содержит:источник
libopenjp2-tools
иlibopenjp2-7-dev
использовалapt-get
, затем собрал из источника, затем запустилsudo ldconfig /usr/local/lib
. (Другими словами, следовал документам). ЕЩЕ № JP2. Argh! Это заставляет меня задуматься. На всякий случай я снова пробежусь через процесс../configure
он проверяет JP2 и не находит его: «проверка на LIBOPENJP2 ... нет» . В качестве бонуса, теперь он не работает для преобразования JPEG в целом. Когда я попробовал,convert in.png out.jpg
он создает файл, но он недействителен - это файл PNG только с расширением jpg. Я не знаю, почему JPEG должен внезапно сломаться при компиляции из исходного кода!