プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (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;
}
    • good
    • 0
この回答へのお礼

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

お礼日時:2009/07/08 22:29

参考になりますでしょうか



C言語による画像処理プログラミング
http://coconut.sys.eng.shizuoka.ac.jp/bmp/

画像Viewerを作ろう
http://www.ysaitoh.k.hosei.ac.jp/labor/2002/otog …
    • good
    • 0
この回答へのお礼

なかなか複雑ですね。

お礼日時:2009/07/08 22:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!