画像処理にこのライブラリ(実際にはD への直接ポート)を使用するアプリがあります。他のファイルタイプをロードするために使用する、同様のスタイルの他のライブラリを探しています。
必要なもの/欲しいもの:
- ロスレスフォーマット。
- シンプルな C API。
- 生のピクセル形式でバッファにデータをロードします。
- オープンソース (ソースファイルを入手して自分で使用するためにコンパイルできるため、ライセンスは関係ありません)
そのようなことを知っている人はいますか?
PNG : 読み込みと保存のために LodePNG ライブラリを試すことができます
C/C++: http://members.gamedev.net/lode/projects/LodePNG/
D ポート: www.dsource.org/projects/scrapple/wiki/LodePngLibrary
FreeImage はかなり包括的で、非常にクリーンで使いやすいです。
devIL と SDL_Image は多くのフォーマットをサポートしています。Derelict はバインディングを提供します。
これらを使用するための私自身のコードで、生のバッファがあります。
devIL: http://codepad.org/tKonvsJ0
SDL_Image: http://codepad.org/jLJDNstw
libpngを試してみることをお勧めしますが、私はそれを使いやすいとは言いません。
それ以外の場合は、ライブラリをまったく使用せずに、ビットマップを直接操作してみてください。
すべての画像読み込みのニーズにimageMagick ( http://www.imagemagick.org/script/index.php ) を使用することを検討します。さまざまなビット深度の多くのフォーマットをサポートし、それらのほとんどの読み取りと書き込みをサポートします。
必要以上のことができるかもしれませんが、非常によく設計されたライブラリであり、私はいくつかのプロジェクトで使用しました。
GPL 互換です。(そして、商用ライセンスも利用できると思います)
Netpbmなどのソフトウェアを使用して、外部ライブラリを必要とせずに任意のプログラムから読み書きするのが非常に簡単なPPM 形式との間で変換できます。
PPM ファイルは次のようになります。
P6 800 600 255 # 0 から 255 までの 800x600x3 バイトの値、つまり \xFF\x00\x00\x80\x80\x00\x00\xFF\x00\x00\x80\x80\x00\x00\xFF... # しかしエスケープされていない
またはこのように:
P3 800 600 255 # 0 から 255 までの 800x600x3 の 10 進数、つまり 255 0 0 128 128 0 0 255 0 0 128 128 0 0 255 ...
いつでもgdimageライブラリを試すことができます。私がそれで行った作業の霧はPHPで行われましたが、私はそれで問題を抱えたことはありません.
SOIL (Simple OpenGl Image Library) はあなたの説明にぴったりだと思います。多くの形式があり、jpg コードはあなたのものと同じソースから移植されています。