Cómo agregar soporte para el formato de imagen JPEG


12

Después de instalar Imagemagick, lo probé con una imagen jpg, como esta:

identify 1.jpg

Pero obtuve este resultado:

identify: no decode delegate for this image format `1.jpg' @ error/constitute.c/ReadImage/550.

Luego, traté de agregar soporte para el formato JPEG:

yum install libjpeg libjpeg-devel

pero tengo:

Setting up Install Process
No package libjpeg available.
No package libjpeg-devel available.
Nothing to do

Pensé que necesitaba actualizar el apt-get, lo hice:

apt-get install libjpeg libjpeg-devel

pero tengo:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package libjpeg
E: Unable to locate package libjpeg-devel

¿Hay una manera fácil de instalar esas bibliotecas? Estoy usando Ubuntu 12.04.


2
¿Por qué estás usando yum? Ese es el administrador de paquetes para una distribución diferente (Red Hat & Fedora), y si ha utilizado yumpara instalar imagemagick, ¡no me sorprende en absoluto que no pueda encontrar las bibliotecas! ¡Solo debe instalar software con apt-get a menos que realmente sepa lo que está haciendo! Además, "Ubuntu 12" no es lo suficientemente específico ... Hay dos versiones de Ubuntu que comienzan con "12": 12.04 y 12.10. Las versiones de Ubuntu se basan en la fecha de lanzamiento: 12.04 se lanzó en abril (mes # 04) del '12, y 12.10 se lanzó en octubre del '12. ¡Por favor asegúrese y especifique!
treinta y

Tengo Ubuntu Release 12.04 (preciso) de 32 bits, no instalé imagemagick con yum, en su lugar, tar xvfz ImageMagick.tar.gz, cd ImageMagick-6.8.0, cd ImageMagick-6.8.0-4, ./configure , make, sudo make install, sudo ldconfig / usr / local / lib
Samir Sabri

pruebe apt-get install libjpeg-dev
Shashank Singla

Es una gran respuesta allí http://askubuntu.com/a/746195
L. Percy

¿Cómo puede cualquier paquete imagemagick ser CUALQUIER uso sin soporte para JPEG preempaquetado? Es como vender pizza sin queso, pan o salsa de tomate.
Sridhar Sarnobat

Respuestas:


11

Solucioné el problema instalando desde la fuente la biblioteca de codificación jpeg disponible en http://www.ijg.org/files/jpegsrc.v8c.tar.gz .

cd /usr/local/src
tar xvfz jpeg-8c.tar.gz
cd jpeg-8c
./configure --enable-shared --prefix=$CONFIGURE_PREFIX
make
sudo make install

Luego reinstalé ImageMagick desde la fuente:

cd /usr/local/src
tar xvfz ImageMagick-6.6.9-5.tar.gz
cd ImageMagick-6.6.9-5
export CPPFLAGS=-I/usr/local/include
export LDFLAGS=-L/usr/local/lib
./configure --prefix=/usr/local --disable-static --with-modules --without-perl --without-magick-plus-plus --with-quantum-depth=8 --disable-openmp
make
sudo make install

Ahora funciona, lo he probado así:

sam@ubuntu:~/RubymineProjects/project/tmp$ identify 1.jpg
1.jpg JPEG 128x106 128x106+0+0 8-bit sRGB 2.22KB 0.000u 0:00.000

Esto funcionó para mí. Tuve que agregar exportación LD_LIBRARY_PATH = $ LD_LIBRARY_PATH: / usr / local / lib / in .profile
mv288

Solo instalé el primer jpegsrc desde la fuente y reinstalé ImageMagick a través de apt-gety también funcionó.
Kyng

6

Si decide compilar ImageMagick desde el origen, debe estar preparado para resolver manualmente todas las dependencias. A menos que tenga una necesidad apremiante, debe instalar todo el software en Ubuntu desde un repositorio, ya sea los repositorios oficiales o un PPA.

Si instala Imagemagick usando APT ( apt-get, Synaptic, Software Center, etc.), los archivos JPG funcionarán bien, como lo confirmó en mi máquina.

Si su razón para construir desde la fuente es obtener una versión más reciente, busque un PPA que rastree la versión más reciente. Si está compilando desde la fuente para ayudar con el desarrollo, entonces debe averiguar de la gente de Imagemagick qué se requiere para construirlo con éxito desde la fuente. Es posible que deba especificar algún indicador ./configureo tener alguna biblioteca de desarrollo instalada antes de ejecutarla ./configure.

Pero normalmente, construir desde la fuente complica innecesariamente las cosas.

Ah, por cierto, Red Hat y Ubuntu usan diferentes nombres para los paquetes. Entonces, si se yumqueja de que falta un paquete, no debería sorprendernos si apt-getno puede encontrar un paquete con ese nombre. No debe mezclar administradores de paquetes en un sistema a menos que tenga una buena razón para hacerlo. Incluso entonces, pruebe todas las demás opciones primero.


No tengo ninguna razón específica para construir desde la fuente, si instalar Imagemagick usando APT (apt-get, Synaptic, Software Center, etc.) solucionará el problema de los archivos JPG, iré con él, ¿podría indicarme cómo instalar Imagemagick? usando APT como lo hiciste?
Samir Sabri el

@SamirSabri: solo busque en el Centro de software o Synaptic. O la implementación del tabulador uso en apt-getdescubrir el comando: sudo apt-get install imagemagick.
Scott Severance el

Por cierto, le sugiero que elimine todos los intentos anteriores de instalar imagemagick antes de intentar instalar usando mi método. De lo contrario, podría terminar con conflictos.
Scott Severance el

Aunque eliminé los intentos anteriores, aparece un error al identificar la imagen jpg, como esta: sam @ ubuntu: ~ / RubymineProjects / project / tmp $ identifique 1.jpg identifique: no hay delegado de decodificación para este formato de imagen `1.jpg ' @ error / constitutivo.c / ReadImage / 550.
Samir Sabri

3

Tenga en cuenta que el no decode delegateerror puede (de manera bastante confusa) resultar de que imagemagick (o alguna parte de él) no encuentre el archivo. Así que antes de ejecutar para volver a instalar ImageMagick, consulte con identify -list formaty convert -list configuresi el formato JPEG es compatible, y si es así, el problema será probablemente en otro lugar.

Por ejemplo, convert -resize 50% foo\ bar.jpgme dio un no decode delegate for this image formaterror, pero convert -resize 50% 'foo bar.jpg'funcionó perfectamente.


1

Si acaba de instalar php5-imagick, intente también instalar el paquete completo de imagemagick. Esto instalará todas las bibliotecas necesarias, como la jpeg.

sudo apt-get install imagemagick

Luego reinicie su servidor web para volver a cargar todas las bibliotecas:

sudo service apache2 restart

La decodificación JPEG ahora debería funcionar sin error.


0

has probado :

sudo apt-get install libjpeg62

Si el comando anterior no funciona, vaya al siguiente enlace.

http://psx-scene.com/forums/f150/help-install-libjpeg-libpng-ubuntu-9-10-livecd-64122/

Hágales saber, si esto fue útil, buena suerte ... :)


Probé su solución, obtuve: Leyendo listas de paquetes ... Hecho Construyendo árbol de dependencias Leyendo información de estado ... Hecho libjpeg62 ya es la versión más nueva. 0 actualizado, 0 recién instalado, 0 para eliminar y 6 no actualizado. Pero, todavía recibo un error cuando identifico la imagen jpg: sam @ ubuntu: ~ / RubymineProjects / project / tmp $ identifique 1.jpg identifique: no hay delegado de decodificación para este formato de imagen `1.jpg '@ error / constitut.c / ReadImage / 550.
Samir Sabri

Bien , encontré esto: blog.ericlamb.net/2008/11/… por favor, verifique y hágamelo saber, gracias por su respuesta.
Rishi Kolvekar

Lo acabo de arreglar antes de leer tu último comentario, gracias, lo tengo en mi respuesta a continuación
Samir Sabri

suena genial !!! :)
Rishi Kolvekar

0

El | La forma más fácil | Descargue " Synaptic Package Manager " del centro de software. -> eliminó los paquetes de libjpeg anteriores * -> reinstaló libjpeg8 y libjpeg-turbo8 y libjpeg-turbo8-dev.

PD: recibí el mismo error. Me llevó 2 días resolverlo. Mi error cuando estaba tratando de mostrar la imagen jpg:

no decode delegate for this image format `jpeg' @ error/constitute.c/readimage/504

Luego, descargo " Synaptic Package Manager " del centro de software. -> eliminó los paquetes antiguos de libjpeg * -> reinstaló libjpeg8 y libjpeg-turbo8 y libjpeg-turbo8-dev.

(* el administrador de paquetes synaptics mostrará dependencia con otro paquete, eliminará solo los paquetes libjpeg independientes más antiguos)

Después de eso, puedo abrir imágenes JPEG sin temor a errores.

Espero eso ayude :)

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.