您的位置:首页 > 其它

windows上如何用HDC获得某张图片上某个点的像素值

2013-10-12 11:20 323 查看
最近几天在用dark gdk做入门游戏开发,现在就其中遇到的这个问题来说一说

dark gdk没有提供获得某张图片上某个点像素值的函数和接口,所以我想了两种办法,

第一种是先把这张图片通过dbLoadImage和dbPasteImage将这张图片显示出来,再通过dbPoint获得这个像素点,接着立即通过dbClear将其清除,这中方法可以用,但是貌似很笨拙,我于是去上网查:

http://bbs.csdn.net/topics/350159153

就看到了这个文章,于是就有了第二种方法,通过设备上下文来处理,我也学过几天MFC,所以对这个还是不陌生的,这个第二种解法:

HBITMAP bitmap = (HBITMAP)LoadImage(NULL,"media_file\\Web.bmp",IMAGE_BITMAP,0,0,LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
if(!bitmap) //LoadImage函数的具体用法去网上一查即可
dbPrint("Can't find this picture");
HDC hMemDC = CreateCompatibleDC(NULL);
SelectObject(hMemDC,bitmap);
DWORD color = GetPixel(hMemDC,300,300);
DeleteDC(hMemDC);


OK,问题解决,我这两种方法说实话都很新手,如果有好方法敬请联系我,谢谢
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  游戏开发 图片 bitmap