Ich möchte ImageMagick verwenden, um einige Dateien von jp2 (JPEG-2000) in jpg zu konvertieren. Der Befehl dazu ist in Ordnung, aber ich weiß nicht, wie ich den jp2-Delegaten in ImageMagick aktivieren soll.
Ich habe ImageMagick über den Paketmanager installiert : sudo apt-get install ImageMagick
.
Ich verwende ImageMagick 6.8.9-9. Dies ist die aktuellste Version von ImageMagick apt-get
.
Derzeit werden viele der Hauptdateitypen automatisch eingeschlossen. Die folgenden Bibliotheken verfügen über eine integrierte Unterstützung und werden als Delegaten aufgeführt:
bzlib cairo djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png rsvg tiff wmf x xml zlib
Bearbeiten : Ich hätte erwähnen sollen, ich habe versucht, Dateien zu konvertieren, bevor ich anfing zu streiten openjpeg-2
. Ein Befehl wie convert input.jp2 output.jpg
gibt mir die Fehlermeldung:
convert: Kein Decodierungsdelegierter für dieses Bildformat "JP2" @ error / konstitu.c / ReadImage / 501.
Also muss ich jp2 zum Laufen bringen. Die relevante Bibliothek ist openjpeg-2
, und die Delegierten-Seite von ImageMagick gibt den Tarball an openjpeg-2.0.0.tar.gz
.
Okay, also habe ich es heruntergeladen und die Installationsanweisungen in der Installationsdatei befolgt. Normales Zeug: cmake .
, sudo make install
.
Aber wie konfiguriere ich ImageMagick jetzt so, dass es "aufnimmt" open-jpeg-2.0.0
? Muss ich ImageMagick aus dem Quellcode neu erstellen, um dies zu tun? Oder gibt es einen Befehl, den ich eingeben kann, um ImageMagick zum Aktivieren zu bewegen? Oder eine Datei, die ich ändern sollte, etc?
Ich habe mich ewig damit beschäftigt, viele Fragen und Antworten online gelesen, aber ich habe es immer noch nicht geknackt. Es ist eher ein Problem meines Linux-Wissens als etwas, das mit ImageMagick per se zu tun hat. Ich würde es wirklich begrüßen, wenn mir jemand helfen könnte, herauszufinden, was der fehlende Schritt hier ist. Vielen Dank.
gm convert in.jp2 out.jpg
Antworten:
Installieren
libopenjp2-tools
und verwenden Sieopj_decompress
, um jp2 in etwas anderes zu konvertieren:Dieses Paket enthält Befehlszeilentools, die Konvertierungen zwischen verschiedenen Formaten ermöglichen, sowie Tools zum Codieren und Decodieren von Motion-JPEG2000-Videoformaten:
quelle
Ich behebe mein Problem, die openjp2-Delegierung in Imagemagick zu aktivieren.
Stellen Sie sicher, dass Sie Folgendes installiert haben:
Wenn Sie jetzt starten, sehen
./configure
Sie die openjp2- Delegierungquelle
Aus meiner Standardinstallation von Image Magick 6.8.9.9 aus den Ubuntu 16.04-Repositorys geht hervor, dass Jpeg200 (
.jp2
) vollständig unterstützt wird.Konvertierungen können durchgeführt werden mit:
Für Befehlszeilenoptionen esp. Informationen zu Codierungsoptionen oder zum Umgang mit gekachelten Bildern finden Sie in der Online-Dokumentation zu Image Magick .
Es muss jedoch gesagt werden, dass dies
jp2
nicht in der Liste der unterstützten Formate aufgeführt ist:Trotzdem funktioniert es anscheinend immer noch gut.
quelle
convert in.jp2 out.jpg
) versuche , erhalte ich die Fehlermeldung, dass ich keinen jp2-Delegaten habe: convert: Kein Dekodierungsdelegierter für dieses Bildformat 'JP2' @ error / konstitu.c / ReadImage / 501. Ich bin am 6.8.9.9 (vonconvert --version
: Version: ImageMagick 6.8.9-9 Q16 x86_64 2017-03-14 imagemagick.org ). Wirklich seltsam, dass Ihre Version jp2 nicht als Format auflistet, aber trotzdem funktioniert! Sind die JPG-Ausgabedateien gültig?libopenjp2-dev
und dem anschließenden Wiederherstellen aus dem Quellcode funktioniert es immer noch nicht. Ich stecke leider immer noch zu 100% fest. Vielen Dank für Ihre Antworten!@arokath Wie Sie konnte ich in der Version von ImageMagick, die ich über apt-get (Ubuntu 16.04.1 LTS) installiert habe, keine JP2-Unterstützung finden.
Vor dem Erstellen aus dem Quellcode ( gemäß den ImageMagick-Dokumenten ) habe ich zuerst
libopenjp2-tools
und dann installiertlibopenjp2-7-dev
.Hinweis : Ich bin mir nicht sicher, welcher den Trick ausgeführt hat: Die alphabetische Zusammenfassung am Ende der
configure
aufgelisteten jp2-Unterstützung alsOpenJP2
, anstattJP2
dass ich sie erst bemerkt habe, nachdem ich sie installiertlibopenjp2-7-dev
und neu konfiguriert hatte. Es ist durchaus möglich, dass es nur mit der ersten Bibliothek funktioniert hat.Außerdem
./configure
,make
undmake install
fand ich , dass ich brauchte , um „configure die dynamischen Linker“ (wie in der Dokumentation vorgeschlagen):sudo ldconfig /usr/local/lib
.Jetzt
/usr/local/bin/identify -list format
enthält die Ausgabe von :quelle
libopenjp2-tools
undlibopenjp2-7-dev
verwendetapt-get
, dann aus dem Quellcode erstellt und dann ausgeführtsudo ldconfig /usr/local/lib
. (Mit anderen Worten, folgte den Dokumenten). NOCH kein JP2. Argh! Es macht mir den Kopf rein. Ich werde den Prozess für alle Fälle noch einmal durchlaufen../configure
nach JP2 gesucht wird und es nicht gefunden wird: "Nach LIBOPENJP2 suchen ... nein" . Als Bonus funktioniert es jetzt im Allgemeinen nicht mehr für JPEG-Konvertierungen. Als ich es versuchteconvert in.png out.jpg
, wurde eine Datei erstellt, die jedoch ungültig ist. Es handelt sich um eine PNG-Datei mit der Erweiterung jpg. Ich weiß nicht, warum JPEG plötzlich kaputt gehen sollte, wenn ich aus dem Quellcode kompiliert habe!