ImageMagickでJPEG2000(jp2)を有効にする方法


13

ImageMagickを使用して、いくつかのファイルをjp2(JPEG-2000)からjpgに変換します。そのためのコマンドは問題ありませんが、ImageMagickでjp2デリゲートを有効にする方法がわかりません。

パッケージマネージャー経由でImageMagickをインストールしましたsudo apt-get install ImageMagick
ImageMagick 6.8.9-9を使用していますが、これはから入手可能なImageMagickの最新バージョンですapt-get

現在、多くの主要なファイルタイプが自動的に含まれています。次のライブラリには組み込みのサポートがあり、デリゲートとしてリストされています。

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

編集:私は言及する必要がありました、私はで悩み始める前にファイル変換を試してみましたopenjpeg-2。次のようなコマンドでconvert input.jp2 output.jpgエラーメッセージが表示されます。

変換:この画像形式「JP2」@ error / constitute.c / ReadImage / 501のデコードデリゲートなし。

だから、私はjp2を動作させる必要があります。関連するライブラリはopenjpeg-2であり、ImageMagickのデリゲートページはtarballを提供しopenjpeg-2.0.0.tar.gzます。

わかりましたので、私はそれをダウンロードし、インストールファイルに記載されているインストール手順に従いました。通常のもの:cmake .sudo make install

しかし、今、ImageMagickを「ピックアップ」するように設定するにはどうすればよいopen-jpeg-2.0.0ですか?ImageMagickをソースから再構築する必要がありますか?または、ImageMagickを有効にするために入力できるコマンドはありますか?または、変更する必要があるファイルなどですか?

私は何年もこれを見て過ごし、多くのQ&Aをオンラインで読みましたが、それでもクラックしませんでした。これはImageMagick 自体とは関係なく、Linuxの知識の問題であるため、ここで不足しているステップを理解できる人がいれば助かります。ありがとうございました。


私は、例えば、代わります:graphicsmagickを使用することによって、この問題を解決gm convert in.jp2 out.jpg
サム・ウィルソンの

回答:


3

インストールlibopenjp2-toolsopj_decompressて、jp2を別のものに変換するために使用します。

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

このパッケージには、いくつかの形式間の変換を可能にするコマンドラインツールが用意されており、motion-jpeg2000ビデオ形式のエンコードおよびデコードツールも提供されています。

  • opj_decompress:j2k、jp2、およびjptファイルをpgm、ppm、pnm、pgx、およびbmpにデコードします。
  • opj_compress:pnm、pgm、pgx、bmp、およびppmファイルをj2kおよびjp2にエンコードします。
  • opj_dump:ダンプ情報にはj2kおよびjp2が含まれます。
  • index_create:j2kファイルからJPIPインデックスファイルでjp2を作成します。
  • frames_to_mj2:YUVビデオストリームをmj2形式に変換します。
  • mj2_to_frames:mj2ビデオストリームをYUV形式に変換します。
  • wrap_j2k_in_mj2:j2kコードストリームをmj2形式にラップします。
  • extract-j2k-from_mj2:mj2形式からj2kコードストリームを抽出します。

2

Imagemagickでopenjp2委任を有効にするという問題を解決しました。

必ずインストールしてください:

起動./configureすると、openjp2の委任が表示されます。

デリゲート= mpeg jbig jng jpeg lcms lzma openjp2 png tiff zlib


1

Ubuntu 16.04リポジトリからImage Magick 6.8.9.9をデフォルトでインストールしたところ、Jpeg200(.jp2)が完全にサポートされているようです。

変換は次の方法で実行できます。

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

コマンドラインオプションの場合は特に。エンコードオプションまたはタイル画像の処理については、Image Magickオンラインドキュメントを参照してください。

ただしjp2、サポートされている形式のリストに記載されていないことを言う必要があります。

identify -list format

それにもかかわらず、明らかにそれはまだうまく機能します。


1
@Takkatに感謝しますが、私には当てはまりません。これを試みると(convert in.jp2 out.jpg)、jp2デリゲートを持っていないというエラーメッセージが表示されます。私は(から6.8.9.9でよconvert --versionバージョン:ImageMagickの6.8.9-9 Q16 x86_64版2017年3月14日imagemagick.org)。あなたのバージョンがjp2をフォーマットとしてリストしていないが、それでも動作することは本当に奇妙です!jpg出力ファイルは有効ですか?
アロカス

PS:リンクに誤字があります:ph2ではなくphp :)
アロカス

@arokath:ええ、ファイルは有効です-との変換をテストしました。ImageViewerまたはGimpでJPGを読み取ることは問題ありませんが、GimpまたはDarktableでJP2を読み取ることは問題ありませんでした。
タカット

1
うーん、私はそのバグレポートを見ました。インストールlibopenjp2-devしてからソースから再構築しても、まだ機能しません。残念ながらまだ100%立ち往生しています。返信ありがとうございます!
アロカス

1
これは質問に対する答えではありません。あなたはそれがあなたのために働くと言っているだけです!そして、ドキュメントへのリンクを提供することは答えではありません!
アジム

1

@arokathあなたのように、apt-get(Ubuntu 16.04.1 LTS)でインストールしたImageMagickのバージョンでjp2サポートを見つけることができませんでした。

ソースからビルドする前に(ImageMagickのドキュメントに従って)、最初にインストールしてからをインストールlibopenjp2-toolsしましたlibopenjp2-7-dev

:私は1つのトリックをやっているかわからない:の末尾のアルファベット順サマリーconfigureとして列挙されたJP2のサポートOpenJP2ではなく、JP2私がインストールされていたまで、私は気付かなかったこれlibopenjp2-7-devと再構成されました。最初のlibのみで機能する可能性は十分にあります。

加えて./configuremakeそしてmake install、私は(ドキュメントで提案されているように)私は、「設定し、ダイナミックリンカを」必要なことがわかりました:sudo ldconfig /usr/local/lib

現在、の出力/usr/local/bin/identify -list formatは次のとおりです。

  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
これをありがとう。残念ながら、まだ問題があります!をインストールlibopenjp2-toolsしてlibopenjp2-7-dev使用しapt-get、ソースからビルドしてから実行しましたsudo ldconfig /usr/local/lib。(言い換えれば、ドキュメントに従いました)。まだJP2はありません。ああ!頭を抱えています。万が一のためにプロセスをもう一度実行します。
アロカス

まだ運がありません。実行時に./configure、JP2をチェックしても見つからないことに気付きました:"LIBOPENJP2をチェックしています... no"。おまけとして、現在では一般的なJPEG変換では機能しません。試したconvert in.png out.jpgところ、ファイルが作成されましたが、無効です-これは、拡張子がjpgのPNGファイルです。ソースからコンパイルしたときに、JPEGが突然壊れる理由がわかりません!
アロカス

「apt-get build-dep imagemagick」を実行して、imagemagickに必要なライブラリーをインストールしてみてください(これらはリリースでビルドされたライブラリーなので、openjp2が必要です)
cbz
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.