这样做bitmap异或有什么不对

domino_question 2006-10-24 05:09:59
我写了个函数(不能用MFC的),做bitmap异或,结果放到*Result中:
VOID BitmapXOR(HBITMAP hbmpCurrent, HBITMAP hbmpLast, BYTE * result)
{
HDC hDC, dcCurrent, dcLast;
HBITMAP hBitmap, hOldBitMap;
int p;

dcCurrent = CreateCompatibleDC(NULL);
hOldBitMap = SelectObject(dcCurrent, hbmpCurrent);

dcLast = CreateCompatibleDC(NULL);
SelectObject(dcLast, hbmpLast);

BitBlt(dcCurrent,0,0,BOARD_WIDTH,BOARD_HEIGHT,dcLast,0,0,SRCINVERT);

hBitmap = CreateCompatibleBitmap(dcCurrent, BOARD_WIDTH, BOARD_HEIGHT);

// Get the bits from the hdcMem
GetBitsFromHBitmap(hBitmap, result);

// clearn up
DeleteObject(hBitmap);
DeleteDC(dcLast);
DeleteDC(dcCurrent);
}

但是我发现不管什么两个不同图片,result结果都是全0,不知道哪里错了. 我不是太理解SelectObject,是不是这个地方有问题啊?

谢谢!
...全文
144 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
domino_question 2006-10-24
  • 打赏
  • 举报
回复
没有人这么用吗?自己顶
domino_question 2006-10-24
  • 打赏
  • 举报
回复
那要怎么写呢?
superarhow 2006-10-24
  • 打赏
  • 举报
回复
hBitmap = CreateCompatibleBitmap(dcCurrent, BOARD_WIDTH, BOARD_HEIGHT);

// Get the bits from the hdcMem
GetBitsFromHBitmap(hBitmap, result);

这中间差一句什么吧?hBitmap才刚刚Create出来,里面还没内容吧。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧