Назад | Перейти на главную страницу

ImageMagick с использованием openJPEG 2.0 и CentOS 6.5

В настоящее время я работаю на сервере CentOS 6.5. Я пытаюсь использовать openjp2 как один из делегатов в ImageMagick.

Поскольку openjpeg для CentOS устарел (1.3), я установил новый, используя пакет RPM.

$ find /usr | grep openj
/usr/lib64/libopenjp2.so
/usr/lib64/libopenjp2.so.2.0.0
/usr/lib64/openjpeg-2.0
/usr/lib64/openjpeg-2.0/OpenJPEGConfig.cmake
/usr/lib64/openjpeg-2.0/OpenJPEGTargets.cmake
/usr/lib64/openjpeg-2.0/OpenJPEGTargets-release.cmake
find: `/usr/lib64/audit': Permission denied
/usr/lib64/libopenjp2.so.6
/usr/share/doc/openjpeg2
/usr/share/doc/openjpeg2/CHANGES
/usr/share/doc/openjpeg2/LICENSE
/usr/share/doc/openjpeg-2.0
/usr/share/doc/openjpeg-2.0/CHANGES
/usr/share/doc/openjpeg-2.0/LICENSE
/usr/share/man/man3/libopenjp2.3.gz
/usr/share/man/man3/libopenjp2.3
/usr/lib/libopenjp2.so
/usr/lib/libopenjp2.so.2.0.0
/usr/lib/openjpeg-2.0
/usr/lib/openjpeg-2.0/OpenJPEGConfig.cmake
/usr/lib/openjpeg-2.0/OpenJPEGTargets-noconfig.cmake
/usr/lib/openjpeg-2.0/OpenJPEGTargets.cmake
/usr/lib/libopenjp2.so.6
/usr/include/openjpeg-2.0
/usr/include/openjpeg-2.0/openjpeg.h
/usr/include/openjpeg-2.0/opj_config.h
/usr/include/openjpeg-2.0/opj_stdint.h

Затем я пытаюсь создать IM версии 6.8.8-2, используя следующие параметры конфигурации.

./configure --prefix=/usr --with-modules --with-openjp2 --with-jpeg --with-png --with-tiff --enable-shared --disable-static

Однако во время проверки (логов) я обнаружил вот это.

-------------------------------------------------------------
checking for LIBOPENJP2... no

И делегаты результата:

bzlib djvu mpeg fontconfig freetype gslib jng jpeg lcms openexr png ps rsvg tiff x xml zlib

Бег ./configure --help, Я видел флаги, которые можно пройти.

LIBOPENJP2_CFLAGS
  C compiler flags for LIBOPENJP2, overriding pkg-config
LIBOPENJP2_LIBS
    linker flags for LIBOPENJP2, overriding pkg-config

Есть ли что-то, что мне нужно указать во время ./configure? Похоже, IM не видит установленный openjpeg.

Спасибо!

Вы не указали, какой именно пакет вы установили, но ваша ошибка указывает на то, что вы не установили связанный с ним -devel пакет, необходимый для компиляции программного обеспечения против него.

Компиляция была немного болезненной, я должен научиться читать логи :( ... Действительно, вам нужно использовать исходный код для jp2 из Вот Затем скомпилируйте как требуется в INSTALL.md:

cmake .
make && make install

По умолчанию установка находится в / usr / local

Перейдите в исходный каталог ImageMagick, затем установите:

export LIBOPENJP2_CFLAGS=/usr/local/include/openjpeg-2.1
export LIBOPENJP2_LIBS=/usr/local/lib
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

Тогда вы можете компилировать! (Я компилировал с помощью perl, tiff, jpeg и jpeg2000).

./configure --enable-delegate-build --with-perl --enable-shared=yes --with-jpeg=yes --with-tiff=yes --with-openjp2=yes && make && make install

Готово !

$> convert -list
Version: ImageMagick 7.0.5-0 Q16 x86_64 2017-03-02 http://www.imagemagick.org
Copyright: © 1999-2017 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC HDRI OpenMP
Delegates (built-in): fontconfig freetype jng jp2 jpeg png tiff x zlib
Usage: convert [options ...] file [ [options ...] file ...] [options ...] file

Я столкнулся с этой проблемой (в CentOS 7) и обнаружил, что проблема в том, что я не установил openjpeg-devel пакет.

yum install openjpeg2-devel

При поиске решений выяснилось, что ImageMagick в настоящее время поддерживает только OpenJPEG 2.1.