最近几天在用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,问题解决,我这两种方法说实话都很新手,如果有好方法敬请联系我,谢谢