bitblt 绘图 阴影处理

时间:2008-07-25 22:37:06   来源:论坛整理  作者:  编辑:chinaitzhe
双缓冲绘图
先做了一张 bitmap 然后用了一张mask bitmap
用bitblt SRCINVERT ,SRCAND ,SRCINVERT
处理后别的地方多没问题,
就是原本图片阴影的地方有问题

我该怎么处理带阴影的图片呢。
网友回复:没人懂吗?
网友回复:啥问题
网友回复:你把你这个过程

bitblt SRCINVERT ,SRCAND ,SRCINVERT

说具体点

还有,你说有问题,哪到底是什么问题?
网友回复:给你遍不错我文章

http://www.hcclib.net/online/Winprogramme/14.htm
网友回复:代码就是:
StretchBlt(hdc,x,y,width,height,hMemDC1,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCINVERT);
StretchBlt(hdc,x,y,width,height,hMemDC2,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCAND);
StretchBlt(hdc,x,y, width,height,hMemDC1,0,0,bitmap.bmWidth,bitmap.bmHeight,SRCINVERT);

两个位图一个是正常的,另一个是我把亮度和对比度调到最低的黑白的mask图
但是效果很不好,和我正常的位图差很远啊
网友回复:加上这个看看

SetStretchBltMode(hdc, COLORONCOLOR);
网友回复:预先定义的名字
布尔操作
透明仿真中的用途

SRCCOPY
src
直接将源拷贝到目的

SRCAND
src AND dest
将目标文件中对应于源文件黑色区域的部分变黑,将对应于白色区域的部分留着不动

SRCINVERT
src XOR dest
将源插入到目标。二次使用时,将目标恢复到它原来的状态。在某种条件下可以代替SRCPAINT 操作

SRCPAINT
src OR dest
将源文件中的非白色区域刷到目标文件中。源中的黑色区域不转换到目标中。

SetBkColor(hdcSrc, rgbTransparent);BitBlt(hdcMask, 0, 0, dx, dy, hdcSrc, x0, y0, SRCCOPY);

SetBkColor(hdcSrc, RGB(0,0,0));
// 1s --> black (0x000000)SetTextColor(hdcSrc, RGB(255,255,255));
// 0s --> white (0xFFFFFF)BitBlt(hdcSrc, x0, y0, dx, dy, hdcMask, 0, 0, SRCAND);
关键字:bitblt,绘图,阴影,处理,

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面