• ベストアンサー

C++でBMP解析

タイトルの通り、 C++でBMPのデータを取得したいと思いますがやり方がわかりません。 たとえば座標(3,6)にはFF0000の色が使われているなどです。 windowsの場合です。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

 こんにちは。  思いっきり簡単に書けば大体以下のwin32apiを使用する事に成ります。 #include<windows.h> #include<stdio.h> int main() { //ビットマップを読み込む HBITMAP hBitmap = (HBITMAP)::LoadImage(NULL, TEXT("test.bmp"), IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE); //デバイスコンテキストを作成 HDC hDCMem = ::CreateCompatibleDC(NULL); //デバイスコンテキストにビットマップを選択 HGDIOBJ hBitmapOld = ::SelectObject(hDCMem, hBitmap); //(3, 6)の色彩を取る const COLORREF color = ::GetPixel(hDCMem, 3, 6); //RGBをプリントする ::printf("[赤:%d][緑:%d][青:%d]\n", GetRValue(color), GetGValue(color), GetBValue(color)); //デバイスコンテキストの復元 ::SelectObject(hDCMem, hBitmapOld); //デバイスコンテキストの削除 ::DeleteDC(hDCMem); //ビットマップの削除 ::DeleteObject(hBitmap); return 0; }

hosepens
質問者

お礼

いろいろサイトを見たのですが、 あまりよくわかりませんでしたが、 これはわかりやすかったです。 ありがとうございました。

その他の回答 (1)

  • kmetu
  • ベストアンサー率41% (562/1346)
回答No.1

参考になりますでしょうか C言語による画像処理プログラミング http://coconut.sys.eng.shizuoka.ac.jp/bmp/ 画像Viewerを作ろう http://www.ysaitoh.k.hosei.ac.jp/labor/2002/otogawa/cpp/ImageViewer3.html

hosepens
質問者

お礼

なかなか複雑ですね。

関連するQ&A

専門家に質問してみよう