Comment ajouter la prise en charge du format d'image JPEG

12

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

identify 1.jpg

Mais j'ai obtenu ce résultat:

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

Ensuite, j'ai essayé d'ajouter la prise en charge du format JPEG en:

yum install libjpeg libjpeg-devel

mais j'ai:

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

J'ai pensé que je devais mettre à jour l'apt-get, j'ai fait:

apt-get install libjpeg libjpeg-devel

mais j'ai:

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.

Samir Sabri
la source
2
Pourquoi utilisez-vous yum? C'est le gestionnaire de paquets pour une distribution différente (Red Hat et Fedora), et si vous avez utilisé yumpour installer imagemagick, je ne suis pas du tout surpris qu'il ne trouve pas les bibliothèques! Vous ne devez installer un logiciel avec apt-get que si vous savez vraiment ce que vous faites! De plus, "Ubuntu 12" n'est pas assez spécifique ... Il existe deux versions d'Ubuntu qui commencent par "12": 12.04 et 12.10. Les versions d'Ubuntu sont basées sur la date de sortie: 12.04 est sorti en avril (mois # 04) de '12, et 12.10 est sorti en octobre de '12. Soyez sûr et précisez!
trente
J'ai Ubuntu version 12.04 (précise) 32 bits, je n'ai pas installé imagemagick avec yum, à la place je 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
essayez apt-get install libjpeg-dev
Shashank Singla
C'est une très bonne réponse là-bas http://askubuntu.com/a/746195
L. Percy
Comment dans le monde un paquet imagemagick peut-il être de N'IMPORTE QUELLE utilisation sans prise en charge de JPEG préemballé?! C'est comme vendre de la pizza sans fromage ni pain ni sauce tomate.
Sridhar Sarnobat

Réponses:

11

J'ai résolu le problème en installant à partir des sources la bibliothèque d'encodage jpeg disponible sur 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 de la source:

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 ceci:

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
Samir Sabri
la source
Cela a fonctionné pour moi. J'ai dû ajouter export LD_LIBRARY_PATH = $ LD_LIBRARY_PATH: / usr / local / lib / in
.profile
J'ai seulement installé le premier jpegsrc depuis la source et réinstallé ImageMagick via apt-getet cela a fonctionné aussi.
kyng
6

Si vous décidez de créer ImageMagick à partir des sources, vous devez être prêt à résoudre manuellement toutes les dépendances. Sauf si vous avez un besoin urgent, vous devez installer tous les logiciels sur Ubuntu à partir d'un référentiel - le référentiel officiel ou un PPA.

Si vous installez Imagemagick à l'aide d'APT ( apt-get, Synaptic, Software Center, etc.), les fichiers JPG fonctionneront très bien, comme je l'ai confirmé sur ma machine.

Si votre raison de construire à partir de la source est d'obtenir une version plus récente, recherchez un PPA qui suit la version la plus récente. Si vous construisez à partir de la source afin d'aider au développement, vous devriez découvrir auprès des gens d'Imagemagick ce qui est requis pour réussir à le construire à partir de la source. Il se peut que vous deviez spécifier un indicateur ./configureou installer une bibliothèque de développement avant de l'exécuter ./configure.

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

Oh, au fait, Red Hat et Ubuntu utilisent des noms différents pour les packages. Donc, si vous vous yumplaignez d'un paquet manquant, il ne devrait pas être surprenant de apt-getne pas trouver un paquet de ce nom. Vous ne devez pas mélanger les gestionnaires de packages sur un système, sauf si vous avez une très bonne raison de le faire. Même dans ce cas, essayez d'abord toutes les autres options.

Scott Severance
la source
Je n'ai aucune raison spécifique de construire à partir des sources, si l'installation d'Imagemagick à l'aide d'APT (apt-get, Synaptic, Software Center, etc.) résoudra le problème des fichiers JPG, j'irai avec, pouvez-vous me montrer comment installer Imagemagick utiliser APT comme vous l'avez fait?
Samir Sabri
@SamirSabri: il suffit de rechercher le Centre logiciel ou Synaptic. Ou onglet utiliser la complétion apt-getpour découvrir la commande: sudo apt-get install imagemagick.
Scott Severance
Au fait, je vous suggère fortement de supprimer toutes les tentatives précédentes d'installation d'imagemagick avant d'essayer d'installer en utilisant ma méthode. Sinon, vous pourriez vous retrouver avec des conflits.
Scott Severance
Bien que j'aie supprimé les tentatives précédentes, j'obtiens une erreur lors de l'identification de l'image jpg, comme ceci: sam @ ubuntu: ~ / RubymineProjects / project / tmp $ identifier 1.jpg identifier: aucun délégué de décodage pour ce format d'image `1.jpg ' @ error / constituent.c / ReadImage / 550.
Samir Sabri
3

Notez que l' no decode delegateerreur peut (de manière assez confuse) résulter du fait qu'imagemagick (ou une partie de celui-ci) n'a pas trouvé le fichier. Donc, avant d'exécuter pour réinstaller imagemagick, vérifiez avec identify -list formatet convert -list configuresi le format JPEG est pris en charge, et si c'est le cas, le problème sera probablement ailleurs.

Par exemple, convert -resize 50% foo\ bar.jpgm'a donné une no decode delegate for this image formaterreur, mais convert -resize 50% 'foo bar.jpg'a parfaitement fonctionné.

Tgr
la source
1

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

sudo apt-get install imagemagick

Redémarrez ensuite votre serveur Web pour recharger toutes les bibliothèques:

sudo service apache2 restart

Le décodage JPEG devrait maintenant fonctionner sans erreur.

Epskampie
la source
0

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/

Faites-leur savoir, si cela vous a été utile, bonne chance ... :)

Rishi Kolvekar
la source
J'ai essayé votre solution, j'ai obtenu: Lecture des listes de paquets ... Terminé Construction de l'arborescence des dépendances Lecture des informations d'état ... Terminé libjpeg62 est déjà la dernière version. 0 mis à niveau, 0 nouvellement installé, 0 à supprimer et 6 non mis à niveau. Mais, j'obtiens toujours une erreur lors de l'identification de l'image jpg: sam @ ubuntu: ~ / RubymineProjects / project / tmp $ identifier 1.jpg identifier: aucun délégué de décodage pour ce format d'image `1.jpg '@ error / constituent.c / ReadImage / 550.
Samir Sabri
ok, j'ai trouvé ceci: blog.ericlamb.net/2008/11/… s'il vous plaît, vérifiez et laissez-moi savoir, merci pour votre réponse.
Rishi Kolvekar
Je viens de le corriger avant de lire votre dernier commentaire, merci, je l'ai dans ma réponse ci
Samir Sabri
super !!! :)
Rishi Kolvekar
0

| Manière la plus simple | Téléchargez " Synaptic Package Manager " à partir du centre logiciel. -> suppression des anciens paquets libjpeg * -> réinstallation de libjpeg8 & libjpeg-turbo8 & libjpeg-turbo8-dev.

PS: J'obtenais la même erreur. Il m'a fallu 2 jours pour me résoudre. Mon erreur lorsque j'essayais d'afficher l'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. -> suppression des anciens paquets libjpeg * -> réinstallation de libjpeg8 & libjpeg-turbo8 & libjpeg-turbo8-dev.

(* le gestionnaire de paquets synaptics montrera la dépendance avec un autre paquet, supprimez seulement les paquets libjpeg indépendants plus anciens)

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

J'espère que cela aide :)

Kevin Patel
la source