So fügen Sie Unterstützung für das JPEG-Bildformat hinzu


12

Nach der Installation von Imagemagick habe ich es mit einem JPG-Image getestet:

identify 1.jpg

Aber ich habe folgendes Ergebnis:

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

Dann habe ich versucht, Unterstützung für das JPEG-Format hinzuzufügen:

yum install libjpeg libjpeg-devel

aber ich habe:

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

Ich dachte, ich muss das apt-get aktualisieren, ich tat:

apt-get install libjpeg libjpeg-devel

aber ich habe:

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

Gibt es eine einfache Möglichkeit, diese Bibliotheken zu installieren? Ich benutze Ubuntu 12.04.


2
Warum benutzt du yum? Das ist der Paketmanager für eine andere Distribution (Red Hat & Fedora), und wenn Sie bereits yumimagemagick installiert haben, wundert es mich nicht, dass die Bibliotheken nicht gefunden werden können! Sie sollten nur Software mit apt-get installieren, wenn Sie wirklich wissen, was Sie tun! Außerdem ist "Ubuntu 12" nicht spezifisch genug ... Es gibt zwei Versionen von Ubuntu, die mit "12" beginnen: 12.04 und 12.10. Ubuntu-Versionen basieren auf dem Veröffentlichungsdatum: 12.04 wurde im April (Monat # 04) von '12 veröffentlicht, und 12.10 wurde im Oktober '12 veröffentlicht. Bitte unbedingt angeben!
DreißigjährigerMorgen

Ich habe Ubuntu Release 12.04 (präzise) 32-Bit, ich habe imagemagick nicht mit yum installiert, sondern ich 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

versuchen Sie apt-get install libjpeg-dev
Shashank Singla

Es ist eine wirklich gute Antwort dort http://askubuntu.com/a/746195
L. Percy

Wie um alles in der Welt kann ein imagemagick-Paket von JEDER Seite verwendet werden, ohne dass JPEG vorab unterstützt wird ?! Das ist so, als würde man Pizza ohne Käse, Brot oder Tomatensauce verkaufen.
Sridhar Sarnobat

Antworten:


11

Ich habe das Problem behoben, indem ich die unter http://www.ijg.org/files/jpegsrc.v8c.tar.gz verfügbare JPEG-Codierungsbibliothek aus dem Quellcode installiert habe .

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

Dann habe ich ImageMagick von der Quelle neu installiert:

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

Jetzt funktioniert es, ich habe es so getestet:

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

Das hat bei mir funktioniert. Ich musste hinzufügen, dass export LD_LIBRARY_PATH = $ LD_LIBRARY_PATH: / usr / local / lib / in .profile
mv288

Ich habe nur den ersten jpegsrc aus dem Quellcode installiert und ImageMagick über neu installiert apt-getund es hat auch funktioniert.
Kyng

6

Wenn Sie ImageMagick aus dem Quellcode erstellen möchten, müssen Sie darauf vorbereitet sein, alle Abhängigkeiten manuell aufzulösen. Sofern Sie keinen dringenden Bedarf haben, sollten Sie die gesamte Software auf Ubuntu von einem Repository aus installieren - entweder von den offiziellen Repos oder von einem PPA.

Wenn Sie Imagemagick mit APT ( apt-get, Synaptic, Software Center usw.) installieren, funktionieren JPG-Dateien einwandfrei , wie ich auf meinem Computer bestätigt habe.

Wenn Sie eine aktuellere Version aus dem Quellcode erstellen möchten, suchen Sie nach einer PPA, die die aktuellste Version protokolliert. Wenn Sie aus dem Quellcode erstellen, um bei der Entwicklung zu helfen, sollten Sie von den Mitarbeitern von Imagemagick herausfinden, was für eine erfolgreiche Erstellung aus dem Quellcode erforderlich ist. Möglicherweise müssen Sie ein Flag für ./configureeine Entwicklungsbibliothek angeben oder eine solche Bibliothek installieren, bevor Sie sie ausführen können ./configure.

Aber normalerweise erschwert das Bauen von der Quelle aus die Dinge unnötig.

Übrigens, Red Hat und Ubuntu verwenden unterschiedliche Namen für Pakete. Wenn Sie yumsich also über ein fehlendes Paket beschweren, ist es nicht verwunderlich, wenn Sie apt-getkein Paket mit diesem Namen finden können. Sie sollten Paketmanager nicht auf einem System mischen, es sei denn, Sie haben einen wirklich guten Grund, dies zu tun. Probieren Sie auch dann zuerst jede andere Option aus.


Ich habe keinen bestimmten Grund, aus dem Quellcode zu erstellen. Wenn die Installation von Imagemagick mit APT (apt-get, Synaptic, Software Center usw.) das Problem mit JPG-Dateien behebt, kann ich Ihnen zeigen, wie Imagemagick installiert wird mit APT wie du?
Samir Sabri

@SamirSabri: Durchsuchen Sie einfach das Software Center oder Synaptic. Oder nutzen Sie Tabulatorvervollständigung auf apt-getden Befehl zu entdecken: sudo apt-get install imagemagick.
Scott Severance

Übrigens empfehle ich dringend, dass Sie alle vorherigen Versuche, imagemagick zu installieren, entfernen, bevor Sie versuchen, es mit meiner Methode zu installieren. Andernfalls könnten Konflikte auftreten.
Scott Severance

Obwohl ich frühere Versuche entfernt habe, erhalte ich eine Fehlermeldung, wenn ich ein JPG-Bild wie folgt identifiziere: sam @ ubuntu: ~ / RubymineProjects / project / tmp @ error / constitu.c / ReadImage / 550.
Samir Sabri

3

Beachten Sie, dass der no decode delegateFehler (ziemlich verwirrend) darauf zurückzuführen sein kann, dass imagemagick (oder ein Teil davon) die Datei nicht findet. Also , bevor imagemagick neu zu installieren läuft, überprüfen Sie mit identify -list formatund convert -list configureob das JPEG - Format unterstützt wird, und wenn ja, wird das Problem wahrscheinlich irgendwo anders sein.

Zum Beispiel convert -resize 50% foo\ bar.jpggab mir einen no decode delegate for this image formatFehler, convert -resize 50% 'foo bar.jpg'funktionierte aber einwandfrei.


1

Wenn Sie gerade php5-imagick installiert haben, installieren Sie auch das vollständige imagemagick-Paket. Dadurch werden alle erforderlichen Bibliotheken installiert, z. B. die JPEG-Bibliothek.

sudo apt-get install imagemagick

Starten Sie dann Ihren Webserver neu, um alle Bibliotheken neu zu laden:

sudo service apache2 restart

Die JPEG-Dekodierung sollte nun fehlerfrei funktionieren.


0

Hast du es versucht :

sudo apt-get install libjpeg62

Wenn der obige Befehl nicht funktioniert, gehen Sie bitte über den folgenden Link.

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

Lassen Sie sie wissen, wenn dies hilfreich war, viel Glück ... :)


Ich habe Ihre Lösung ausprobiert und Folgendes erhalten: Lesen von Paketlisten ... Fertig Erstellen eines Abhängigkeitsbaums Lesen von Statusinformationen ... Fertig libjpeg62 ist bereits die neueste Version. 0 aktualisiert, 0 neu installiert, 0 zu entfernen und 6 nicht aktualisiert. Aber ich erhalte immer noch eine Fehlermeldung, wenn ich ein JPG-Bild identifiziere: sam @ ubuntu: ~ / RubymineProjects / project / tmp / 550.
Samir Sabri

Okay, ich habe folgendes gefunden: blog.ericlamb.net/2008/11/… Bitte überprüfen Sie und lassen Sie es mich wissen, danke für Ihre Antwort.
Rishi Kolvekar

Ich habe es gerade behoben, bevor ich Ihren letzten Kommentar gelesen habe, danke, ich habe ihn in meiner Antwort unten angegeben
Samir Sabri,

klingt gut !!! :)
Rishi Kolvekar

0

| Einfachster Weg | Laden Sie " Synaptic Package Manager " aus dem Software Center herunter . -> entfernte ältere libjpeg-Pakete * -> neu installierte libjpeg8 & libjpeg-turbo8 & libjpeg-turbo8-dev.

PS: Ich habe den gleichen Fehler bekommen. Ich habe 2 Tage gebraucht, um gelöst zu werden. Mein Fehler beim Versuch, ein JPG-Bild anzuzeigen:

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

Dann lade ich " Synaptic Package Manager " aus dem Software Center herunter . -> entfernte ältere libjpeg-Pakete * -> neu installiert libjpeg8 & libjpeg-turbo8 & libjpeg-turbo8-dev.

(* Der Synaptics-Paket-Manager zeigt die Abhängigkeit von anderen Paketen an. Entfernen Sie nur ältere unabhängige libjpeg-Pakete.)

Danach kann ich JPEG-Bilder ohne Angst vor Fehlern öffnen.

Ich hoffe es hilft :)

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.