it-swarm.com.de

Wie aktiviere ich JPEG2000 (jp2) in ImageMagick?

Ich möchte ImageMagick verwenden, um einige Dateien von jp2 (JPEG-2000) nach 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, die von apt-get erhältlich ist.

Derzeit werden viele der wichtigsten Dateitypen automatisch einbezogen. Die folgenden Bibliotheken verfügen über integrierte Unterstützung und werden als Stellvertreter 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, dass ich Dateikonvertierungen versucht habe, bevor ich mit openjpeg-2 angefangen habe. Ein Befehl wie convert input.jp2 output.jpg gibt mir die Fehlermeldung:

convert: kein Dekodierungsdelegat für dieses Bildformat `JP2 '@ error/constitu.c/ReadImage/501.

Also muss ich jp2 zum Laufen bringen. Die relevante Bibliothek ist openjpeg-2, und ImageMagicks Delegates-Seite gibt den Tarball openjpeg-2.0.0.tar.gz aus.

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 open-jpeg-2.0.0 "aufnimmt"? Muss ich ImageMagick von der Quelle neu erstellen, um dies zu tun? Oder gibt es einen Befehl, den ich eingeben kann, damit ImageMagick ihn aktiviert? Oder eine Datei, die ich ändern soll, etc?

Ich habe ewig damit verbracht, mich damit zu beschäftigen, viele Fragen und Antworten online zu lesen, aber ich habe sie immer noch nicht geknackt. Es ist eher eine Frage meines Linux-Wissens als etwas, das mit ImageMagick per se zu tun hat. Ich würde es wirklich begrüßen, wenn mir jemand helfen kann, was herauszufinden Der fehlende Schritt ist hier. Danke.

11
arokath

Ich löse mein Problem, die openjp2-Delegierung in Imagemagick zu aktivieren.

Stellen Sie sicher, dass Sie Folgendes installiert haben:

Wenn Sie jetzt ./configure starten, können Sie openjp2 -Delegation sehen

DELEGATES = mpeg jbig jng jpeg lcms lzma openjp2 png tiff zlib

2
Arnaud

@arokath Wie Sie konnte ich in der Version von ImageMagick, die ich über apt-get (Ubuntu 16.04.1 LTS) installiert habe, keine Unterstützung für jp2 finden.

Vor dem Erstellen aus dem Quellcode (gemäß ImageMagick docs ) habe ich zuerst libopenjp2-tools und dann libopenjp2-7-dev installiert.

Hinweis : Ich bin mir nicht sicher, welcher den Trick gemacht hat: Die alphabetische Zusammenfassung am Ende von configure listete die jp2-Unterstützung eher als OpenJP2 auf als JP2, den ich erst bemerkte, als ich libopenjp2-7-dev installiert und neu konfiguriert hatte; es ist durchaus möglich, dass es nur mit der ersten lib funktioniert hat.

Neben ./configure, make und make install habe ich festgestellt, dass ich (wie in den Dokumenten vorgeschlagen) den "Dynamic Linker" konfigurieren muss: Sudo ldconfig /usr/local/lib.

Die Ausgabe von /usr/local/bin/identify -list format enthält nun:

  J2C* rw-   JPEG-2000 Code Stream Syntax (2.1.0)
  J2K* rw-   JPEG-2000 Code Stream Syntax (2.1.0)
  JNX* r--   Garmin tile format
  JP2* rw-   JPEG-2000 File Format Syntax (2.1.0)
  JPC* rw-   JPEG-2000 Code Stream Syntax (2.1.0)
  JPM* rw-   JPEG-2000 File Format Syntax (2.1.0)
  JPT* rw-   JPEG-2000 File Format Syntax (2.1.0)
 JSON  -w+   The image format and characteristics
1
user3294778

Installiere libopenjp2-tools und verwende opj_decompress, um jp2 in etwas anderes zu konvertieren:

Sudo apt install libopenjp2-tools
opj_decompress -i m_3712213_sw_10_h_20160625_20161004.jp2 -OutFor TIF -o my.tif

Dieses Paket enthält Befehlszeilen-Tools, mit denen Konvertierungen zwischen verschiedenen Formaten möglich sind, sowie Tools zum Kodieren und Dekodieren von Motion-JPEG2000-Videoformaten:

  • opj_decompress: dekodiert j2k-, jp2- und jpt-Dateien in pgm, ppm, pnm, pgx und bmp.
  • opj_compress: Codiert PNM-, PGM-, PGX-, BMP- und PPM-Dateien in j2k und jp2.
  • opj_dump: dump information enthält in j2k und jp2.
  • index_create: jp2 mit JPIP-Indexdatei aus einer j2k-Datei erstellen.
  • frames_to_mj2: Konvertiert YUV-Videostreams in das mj2-Format.
  • mj2_to_frames: konvertiert mj2-Videostreams in das YUV-Format.
  • wrap_j2k_in_mj2: wrap j2k codestreams ins mj2 format.
  • extract-j2k-from_mj2: Extrahiert J2K-Codestreams aus dem MJ2-Format.
1
Bora M. Alper

Aus meiner Standardinstallation von Image Magick 6.8.9.9 aus den Ubuntu 16.04-Repositories geht hervor, dass Jpeg200 (.jp2) vollständig unterstützt wird.

Konvertierungen können durchgeführt werden mit:

convert in.png out.jp2
convert in.jp2 out.jpg

Für Befehlszeilenoptionen insb. Informationen zu Kodierungsoptionen oder zur Behandlung von gekachelten Bildern finden Sie unter Online-Dokumentation von Image Magick .

Es muss jedoch erwähnt werden, dass jp2 nicht in der Liste der unterstützten Formate aufgeführt ist:

identify -list format

Trotzdem funktioniert es anscheinend immer noch gut.

1
Takkat