web-dev-qa-db-fra.com

Comment ajouter un support pour le format d'image JPEG

Après avoir installé Imagemagick, je l’ai testé avec une image jpg, comme ceci:

identify 1.jpg

Mais j'ai eu ce résultat:

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

Ensuite, j'ai essayé d'ajouter le support du format JPEG en:

yum install libjpeg libjpeg-devel

mais j'ai eu:

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

Je pensais que je devais mettre à jour apt-get, j'ai fait:

apt-get install libjpeg libjpeg-devel

mais j'ai eu:

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

Existe-t-il un moyen simple d’installer ces bibliothèques? J'utilise Ubuntu 12.04.

12
Samir Sabri

J'ai résolu le problème en installant à partir de la source la bibliothèque d'encodage JPEG disponible à l'adresse 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

Ensuite, j'ai réinstallé ImageMagick à partir des sources:

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

Maintenant que ça marche, je l'ai testé comme ça:

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
11
Samir Sabri

Si vous décidez de créer ImageMagick à partir des sources, vous devez être prêt à résoudre manuellement toutes les dépendances. Sauf nécessité urgente, vous devez installer tous les logiciels sous Ubuntu à partir d'un référentiel, qu'il s'agisse du dépôt officiel ou d'un PPA.

Si vous installez Imagemagick en utilisant APT (apt-get, Synaptic, Software Center, etc.), les fichiers JPG fonctionneront correctement, comme je l’ai confirmé sur ma machine.

Si vous souhaitez créer à partir des sources pour obtenir une version plus récente, recherchez un PPA qui assure le suivi de la version la plus récente. Si vous construisez à partir des sources afin de contribuer au développement, vous devez vous renseigner auprès des experts d'Imagemagick sur les éléments nécessaires à la création réussie des sources. Il se peut que vous deviez spécifier un indicateur à ./configure ou installer une bibliothèque de développement avant d'exécuter ./configure.

Mais normalement, construire à partir de la source complique inutilement les choses.

Au fait, Red Hat et Ubuntu utilisent des noms différents pour les packages. Donc, si yum se plaint d'un paquet manquant, il ne devrait pas être surprenant que apt-get ne puisse pas trouver un paquet portant ce nom. Vous ne devez pas associer des gestionnaires de packages à un système, sauf si vous avez une très bonne raison de le faire. Même alors, essayez toutes les autres options en premier.

6
Scott Severance

Notez que l'erreur no decode delegate peut (assez déroutant) résulter du fait que imagemagick (ou une partie de celle-ci) n'a pas trouvé le fichier. Donc, avant de réinstaller imagemagick, vérifiez avec identify -list format et convert -list configure si le format JPEG est pris en charge et, le cas échéant, le problème sera probablement ailleurs.

Par exemple, convert -resize 50% foo\ bar.jpg m'a donné un no decode delegate for this image format eror, mais convert -resize 50% 'foo bar.jpg' a parfaitement fonctionné.

3
Tgr

Si vous venez d'installer php5-imagick, essayez également d'installer le paquet complet imagemagick. Cela installera toutes les bibliothèques requises, telles que celle au format jpeg.

Sudo apt-get install imagemagick

Puis redémarrez votre serveur Web pour recharger toutes les bibliothèques:

Sudo service Apache2 restart

Le décodage JPEG devrait maintenant fonctionner sans erreur.

1
Epskampie

| moyen le plus simple | Téléchargez "Synaptic Package Manager" à partir du centre logiciel. -> anciens paquets libjpeg supprimés * -> réinstallé libjpeg8 & libjpeg-turbo8 & libjpeg-turbo8-dev.

PS: J'avais la même erreur. Cela m'a pris 2 jours pour être résolu. Mon erreur lorsque j'essayais d'afficher une image jpg:

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

Ensuite, je télécharge "Synaptic Package Manager" à partir du centre logiciel. -> anciens paquets libjpeg supprimés * -> réinstallé libjpeg8 & libjpeg-turbo8 & libjpeg-turbo8-dev.

(* Le gestionnaire de paquets synaptics montrera la dépendance avec d'autres paquets, supprimera uniquement les anciens paquets indépendants libjpeg)

Après cela, je suis capable d’ouvrir des images JPEG sans crainte d’erreur.

J'espère que ça aide :)

0
Kevin Patel

as-tu essayé :

Sudo apt-get install libjpeg62

si la commande ci-dessus ne fonctionne pas, veuillez suivre le lien suivant.

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

Dites-leur, si cela vous a aidé, bonne chance ... :)

0
Rishi Kolvekar