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.
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
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.
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é.
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.
| 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 :)
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 ... :)