Quiero usar ImageMagick para convertir algunos archivos de jp2 (JPEG-2000) a jpg. El comando para hacerlo está bien, pero no sé cómo habilitar el delegado jp2 en ImageMagick.
He instalado ImageMagick a través del gestor de paquetes: sudo apt-get install ImageMagick
.
Estoy usando ImageMagick 6.8.9-9, esta es la versión más actualizada de ImageMagick disponible en apt-get
.
Actualmente, muchos de los tipos de archivos principales se incluyen automáticamente. Las siguientes bibliotecas tienen soporte incorporado y se enumeran como delegados:
bzlib cairo djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png rsvg tiff wmf x xml zlib
Editar : Debería haber mencionado, intenté conversiones de archivos antes de comenzar a discutir openjpeg-2
. Un comando como convert input.jp2 output.jpg
me da el mensaje de error:
convertir: sin delegado de decodificación para este formato de imagen `JP2 '@ error / constitut.c / ReadImage / 501.
Entonces, necesito que jp2 funcione. La biblioteca es relevante openjpeg-2
, y de ImageMagick página delegados da el paquete de archivos, openjpeg-2.0.0.tar.gz
.
Bien, entonces lo descargué y seguí las instrucciones para instalar que figuran en el archivo de instalación. Cosas normales: cmake .
, sudo make install
.
Pero ahora, ¿cómo configuro ImageMagick para que 'se recupere' open-jpeg-2.0.0
? ¿Tengo que reconstruir ImageMagick desde la fuente para hacerlo? ¿O hay un comando que puedo ingresar para obtener ImageMagick para habilitarlo? ¿O un archivo que debería cambiar, etc.?
He pasado siglos investigando esto, leí muchas preguntas y respuestas en línea, pero aún no lo descifré. Es un problema de mi conocimiento de Linux en lugar de algo relacionado con ImageMagick per se , por lo que realmente agradecería que alguien pueda ayudarme a descubrir cuál es el paso que falta aquí. Gracias.
gm convert in.jp2 out.jpg
Respuestas:
Instalar
libopenjp2-tools
y usaropj_decompress
para convertir jp2 a otra cosa:Este paquete proporciona herramientas de línea de comandos que permiten conversiones entre varios formatos y también proporciona herramientas para codificar y decodificar formatos de video motion-jpeg2000:
fuente
Resuelvo mi problema de habilitar la delegación de openjp2 en Imagemagick.
Asegúrese de tener instalado:
Ahora, cuando ejecutas
./configure
puedes ver la delegación de openjp2fuente
Desde mi instalación predeterminada de Image Magick 6.8.9.9 de los repositorios de Ubuntu 16.04, parece que Jpeg200 (
.jp2
) es totalmente compatible.Las conversiones se pueden hacer con:
Para las opciones de línea de comando esp. con respecto a las opciones de codificación o el manejo de imágenes en mosaico, consulte la documentación en línea de Image Magick .
Sin embargo, debe decirse que
jp2
no figura en la lista de formatos admitidos:Sin embargo, aparentemente todavía funciona bien.
fuente
convert in.jp2 out.jpg
), recibo el mensaje de error de que no tengo el delegado jp2: convert: sin delegado de decodificación para este formato de imagen 'JP2' @ error / constitut.c / ReadImage / 501. Estoy en 6.8.9.9 (deconvert --version
: Versión: ImageMagick 6.8.9-9 Q16 x86_64 2017-03-14 imagemagick.org ). ¡Es realmente extraño que su versión no incluya jp2 como formato, pero aún así funciona! ¿Son válidos los archivos de salida jpg?libopenjpeg2
instalado desde otra aplicación (no puedo probar esto hasta más tarde hoy).libopenjp2-dev
y reconstrucción desde el origen, todavía no funciona. Estoy 100% atrapado todavía por desgracia. ¡Gracias por tus respuestas, sin embargo!@arokath Al igual que usted, no pude encontrar soporte para jp2 en la versión de ImageMagick que instalé a través de apt-get (Ubuntu 16.04.1 LTS).
Antes de construir desde la fuente (siguiendo los documentos de ImageMagick ), instalé primero
libopenjp2-tools
y luegolibopenjp2-7-dev
.Nota : No estoy seguro de cuál hizo el truco: el resumen alfabético al final del
configure
soporte de jp2 enumerado comoOpenJP2
, en lugar deJP2
lo que no noté hasta que lo instalélibopenjp2-7-dev
y reconfiguré; es muy posible que funcionó solo con la primera lib.Además
./configure
,make
ymake install
, descubrí que necesitaba (como se sugiere en los documentos) a "configurar el enlazador dinámico":sudo ldconfig /usr/local/lib
.Ahora, la salida de
/usr/local/bin/identify -list format
contiene:fuente
libopenjp2-tools
ylibopenjp2-7-dev
uséapt-get
, luego construí desde la fuente, luego corrísudo ldconfig /usr/local/lib
. (En otras palabras, siguió los documentos). TODAVÍA no JP2. Argh! Me está molestando. Volveré a ejecutar el proceso por si acaso../configure
, comprueba JP2 y no lo encuentra: "comprobando LIBOPENJP2 ... no" . Como beneficio adicional, ahora no funciona para las conversiones JPEG en general. Cuando lo intentéconvert in.png out.jpg
, crea un archivo, pero no es válido: es un archivo PNG solo con la extensión jpg. ¡No sé por qué JPEG debería romperse repentinamente cuando he compilado desde la fuente!