1

ビットマップをロードし、すべてのケース (rle、b/w ビットマップなど) を処理する優れた C サンプルを知っている人はいますか?

コードはクロスプラットフォームである必要があります。

ありがとう。

4

7 に答える 7

5

SDLイメージのようなライブラリを使用することをお勧めします

于 2009-11-03T16:56:32.430 に答える
3

最小限の bmp ローダーを探している場合は、このリンクから、BMP 形式、データ構造、サンプル コードについて知る必要があるすべての情報が得られます。ライブラリに依存せずに読み込むことができます。

http://paulbourke.net/dataformats/bmp/ .

また、読み込まれた BMP を開いている gl テクスチャで表示するためのコードも含まれているため、必要なものはほとんどすべて...

于 2009-11-03T21:30:47.080 に答える
1

Intel が開発した OpenCV Library をチェックしてください。

于 2009-11-03T20:33:42.303 に答える
1

これを行うには、外部ライブラリが必要です ( ImageMagickをお勧めします)。ImageMagick の Web サイトには、ドキュメントとサンプルも含まれています。

于 2009-11-03T19:04:03.570 に答える
1

Chris Backhouse は、機能的な小さな BMP ローダーを作成しました (OpenGL テクスチャとして使用することを視野に入れています)。これは C ではなく C++ であり、クロス プラットフォームではないことを彼は認めています。ただし、小さくてわかりやすいので、ここにリンクを追加すると思いました。

http://users.ox.ac.uk/~orie1330/bmploader.html

于 2009-11-03T17:29:07.513 に答える
0

BMP ファイル形式に縛られている場合は、自分でヘッダーを見てピクセルを取得するのは非常に簡単です。 このグーグル検索を参照してください。より興味深い試合の 1 つがここにあります。最も直観に反する部分は、ピクセルのすべての行が 4 バイトでアラインされていることです。また、圧縮された BMP にも注意してください... (私の経験では、多くのサードパーティ製ツールが圧縮された BMP に問題を抱えているため、遭遇するいくつかのライブラリも..)

BMP ファイル形式に縛られていない場合は、libpng をお勧めします。マニュアルには、かなり明確なサンプルコードがいくつか提供されています。

于 2009-11-03T16:57:13.810 に答える
0

他の人が示唆したように、SDL のような外部ライブラリを使用することをお勧めします。何かを学び、自分でやりたい場合は、この非常によく似た質問に対する私の回答を参照してください: C でGBA 形式に変換するために 24bpp ビットマップから各ピクセルの RGB 値を取得する場所では、各ピクセルを出力する C コードを見つけることができます。ウィキペディアの bmp ファイルに関するページを参照してください。非常に優れているためです。

于 2009-11-03T21:19:57.070 に答える