ディレクトリにいくつかの画像 (.bmp、.png、.jpg) があります。この画像を 565 形式 (16 ビット ピクセル) で LCD に表示するために、この画像を WORD 配列に変換したいと考えています。画像をWORD配列に変換するには? 助けてください。イメージをバイナリに変換するだけのユーティリティはありますか? または Windows C/CPP でバイナリに変換するコードを提供してください。
2 に答える
これは、入力画像の正確な形式に大きく依存します。
「単語に」変換するだけでは、実際にやりたいことを表現していません。これは、おそらく「ビットマップ画像を行優先形式の RGB565 ピクセルの配列に変換する」に似ています。
ビットマップ画像をロードし、各ピクセルの値を読み取ることができる画像処理ライブラリを確認する必要があります。
おそらくRGB565に直接変換するだけでよく、他のビットマップ形式からはそれほど難しくないはずです.
インデックス付きと「トゥルーカラー」の両方のビットマップ形式があり、両方を処理する必要があるように聞こえることに注意してください。運が良ければ、各フォーマットのライブラリはこれを抽象化し、たとえばuint32 read_pixel_as_rgb888()
関数を持ちます。
また、多くのビットマップ画像形式は圧縮に重点を置いているため、ファイルのビットを読み取るだけでは不十分であり、形式に従ってデータを解凍する必要があることに注意してください。これは非常に複雑なため、事前に作成されたライブラリが唯一の適切な選択です。
PNG の場合はlibpngを、JPEG の場合はlibjpegを参照してください。よく考えてみると、これらのライブラリは少しレベルが低すぎるので、代わりにSDL_Imageのようなものを検討する必要があるかもしれません。
CImg を使用して画像ファイルを開くことができます - http://cimg.sourceforge.net/