web-dev-qa-db-fra.com

Comment activer JPEG2000 (jp2) dans ImageMagick?

Je souhaite utiliser ImageMagick pour convertir certains fichiers de jp2 (JPEG-2000) en jpg. La commande qui convient est correcte, mais je ne sais pas comment activer le délégué jp2 dans ImageMagick.

J'ai installé ImageMagick via le gestionnaire de paquets: Sudo apt-get install ImageMagick.
J'utilise ImageMagick 6.8.9-9. Il s'agit de la version la plus récente d'ImageMagick disponible à partir de apt-get.

Actuellement, de nombreux types de fichiers principaux sont automatiquement inclus. Les bibliothèques suivantes ont un support intégré et sont répertoriées en tant que délégués:

bzlib cairo djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png rsvg tiff wmf x xml zlib

Edit : J'aurais dû le mentionner, j'ai essayé de convertir des fichiers avant de commencer à me disputer avec openjpeg-2. Une commande telle que convert input.jp2 output.jpg me donne le message d'erreur suivant:

convert: aucun délégué de décodage pour ce format d'image `JP2 '@ error/constit.c/ReadImage/501.

Donc, j'ai besoin de faire fonctionner jp2. La bibliothèque appropriée est openjpeg-2 et ImageMagick page délégués donne l'archive, openjpeg-2.0.0.tar.gz.

D'accord, je l'ai donc téléchargé et suivi les instructions d'installation données dans le fichier d'installation. Trucs normaux: cmake ., Sudo make install.

Mais maintenant, comment configurer ImageMagick pour qu'il "décroche" open-jpeg-2.0.0? Dois-je reconstruire ImageMagick à partir de la source pour le faire? Ou y a-t-il une commande que je peux entrer pour que ImageMagick l'active? Ou un fichier que je devrais changer, etc.?

J'ai passé de très longues années à étudier cela, j'ai lu de nombreuses questions-réponses en ligne, mais je ne l'ai toujours pas lu. C’est un problème de connaissance de Linux plutôt que d’être lié à ImageMagick en tant que tel , donc je vous en serais vraiment reconnaissant si quelqu'un pouvait m'aider à déterminer l'étape manquante est ici. Je vous remercie.

11
arokath

Je résous mon problème d'activation de la délégation openjp2 dans Imagemagick.

Assurez-vous d'avoir installé:

Maintenant, lorsque vous lancez ./configure, vous pouvez voir une délégation openjp2

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

2
Arnaud

@arokath Comme vous, je n'ai pas pu trouver de support jp2 dans la version d'ImageMagick que j'ai installée via apt-get (Ubuntu 16.04.1 LTS).

Avant de compiler à partir des sources (après ImageMagick docs ), j'ai d'abord installé libopenjp2-tools, puis libopenjp2-7-dev.

Remarque : Je ne suis pas sûr de savoir lequel a fait l'affaire: le résumé alphabétique à la fin de configure indique que le support jp2 est OpenJP2, plutôt que JP2. n'a pas remarqué jusqu'à ce que j'ai installé libopenjp2-7-dev et reconfiguré; il est fort possible que cela n'ait fonctionné qu'avec la première bibliothèque.

Outre ./configure, make et make install, j’ai trouvé qu’il me fallait (comme indiqué dans la documentation) "configurer l’éditeur de liens dynamique": Sudo ldconfig /usr/local/lib.

Maintenant, la sortie de /usr/local/bin/identify -list format contient:

  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

Installez libopenjp2-tools et utilisez opj_decompress pour convertir jp2 en quelque chose d'autre:

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

Ce paquet fournit des outils de ligne de commande permettant des conversions entre plusieurs formats et fournit également des outils d’encodage et de décodage des formats vidéo motion-jpeg2000:

  • opj_decompress: décode les fichiers j2k, jp2 et jpt en pgm, ppm, pnm, pgx et bmp.
  • opj_compress: code les fichiers pnm, pgm, pgx, bmp et ppm en j2k et jp2.
  • opj_dump: les informations de dump sont contenues dans j2k et jp2.
  • index_create: crée un fichier jp2 avec un fichier d'index JPIP à partir d'un fichier j2k.
  • frames_to_mj2: convertit les flux vidéo YUV au format mj2.
  • mj2_to_frames: convertit les flux vidéo mj2 au format YUV.
  • wrap_j2k_in_mj2: encapsule les flux de code j2k au format mj2.
  • extract-j2k-from_mj2: extrayez les flux de code j2k du format mj2.
1
Bora M. Alper

D'après mon installation par défaut d'Image Magick 6.8.9.9 à partir des référentiels Ubuntu 16.04, il apparaît que Jpeg200 (.jp2) est entièrement pris en charge.

Les conversions peuvent être effectuées avec:

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

Pour les options de ligne de commande esp. concernant les options d’encodage ou la gestion des images en mosaïque, voir documentation en ligne de Image Magick .

Il faut cependant noter que jp2 ne figure pas dans la liste des formats pris en charge:

identify -list format

Néanmoins, apparemment cela fonctionne toujours bien.

1
Takkat