3

JPEG ファイルをデコードし、非圧縮のデコード出力を BMP/RGB 形式で取得したいと考えています。GNU/Linux と C/C++ を使用しています。

libjpeg を見てみましたが、適切なドキュメントが利用できるようには見えませんでした。だから私の質問は:

  1. libjpeg のドキュメントはどこにありますか?
  2. 他の C ベースの jpeg 解凍ライブラリを提案できますか?
4

5 に答える 5

6

libjpeg のドキュメントには、ソース コードが付属しています。あなたはまだそれを見つけていないので:

ソースコード アーカイブをダウンロードし、ファイルlibjpeg.docを開きます。Word 文書ではなくプレーンな ASCII ファイルなので、メモ帳または別の ASCII エディタで開いてください。

他にも .doc ファイルがいくつかあります。しかし、それらのほとんどはそれほど興味深いものではありません。

残念ながら、libjpeg 以外のライブラリはお勧めできません。いくつかの代替案を試しましたが、Libjpeg が常に勝ちました。基本的な作業が完了すると、非常に簡単に作業できます。また、最も完全で最も安定した jpeg ライブラリです。

于 2009-06-17T19:54:40.707 に答える
2

QtのQImageをチェックする必要があります。それはこのタスクを本当に簡単にする非常に簡単なインターフェースを持っています。セットアップはすべてのプラットフォームで非常に簡単です。

Qtがやり過ぎの場合は、Magick++ http://www.imagemagick.org/Magick++/を試すことができます。同様の操作をサポートし、そのようなタスクにも適しています。前回使用したときは、Windowsでの依存関係に少し苦労しましたが、Linuxでのトラブルはあまり覚えていません。

Magick ++のImageクラスの場合、おそらく必要な関数はgetConstPixelsです。

于 2009-06-17T19:46:28.227 に答える
2

MagickWand は ImageMagick の C API です。

http://imagemagick.org/script/magick-wand.php

私はそれを使用していませんが、ドキュメントはかなり広範に見えます。

于 2009-06-17T19:37:50.053 に答える
1

少し独創的な解決策は、netpbmツールのコピーを取得することです。これは、いくつかの非常に単純な中間形式の 1 つを介して、ほとんどすべての形式から他の形式に画像を変換します。それらはシェルからうまく機能し、ほとんどの場合、パイプで任意の画像を読み取り、それに対して操作を実行し、他の形式に書き出すために使用されます。

pbm 形式は、単純な ASCII ヘッダーの後に ASCII またはバイナリの RGB データが続くという単純なものにすることができます。それらは、実装するライブラリを必要とせずに使用できるほど単純であることを目的としています。

JPEG は、libjpeg の上に実装されている読み取りおよび書き込みフィルターによって netpbm でサポートされています。

于 2009-06-17T20:38:40.180 に答える
1

libjpeg ライブラリを使用して jpeg 画像をロードするためにコピーできる (または単に参照として使用する) コードがあります。

ここでコードを参照できます: http://code.google.com/p/kgui/source/browse/trunk/kguiimage.cpp関数LoadJPGImage

を探してください。 コードは、イメージをロードするためにDataHandleクラスの c++ バインディングを処理するように設定されています。これにより、イメージは既にメモリ内にあるファイルまたはデータなどにすることができます。


于 2009-06-17T20:34:44.743 に答える