关于图片镂空和bitblt及setbkcolor等的理解

参考网址:(其实代码都一样,只是提供了图片形象生动来配合理解)

http://blog.csdn.net/gudesheng/archive/2008/03/11/2169289.aspx

 

http://www.vckbase.com/document/viewdoc/?id=532

 

http://blog.csdn.net/suolao/archive/2009/09/23/4582206.aspx

 

声明:以下纯属个人想出来的用来理解的观点

 

 

正文:

gdi绘图肯定会涉及到不规则图像的绘制, 那这里自然要接触图片镂空的概念(这里只是简单的显示的范围出来一块镂空的区域,如果要响应事件的话,仍然是矩形区域,但可以通过rgn的修改来配合切出响应区域)

 

下面开始将图片镂空,代码在上述网址里都有,这里就不再废话了,我要重点将的是理解单色黑白图和彩图之间的bitblt及setbkcolor和settextcolor的相关个人理解:

我个人理解,bitblt的过程理论上是一种过程,就是平常彩图间的操作,

而另一种我认为是发生在黑白图(只有1位的,而不是彩图中的黑白图),因为两边位数不同,所以需要先来个转换过程,通常情况下我认为是这样转换的:

当彩图转为黑白图时,使用setbkcolor来告诉彩图什么颜色设置为白色,其他颜色设置为黑色(默认情况下设备环境的背景色是白色,前景色是黑色,所以也不用设置,但我不确定如果修改了黑白图的背景色和前景色会怎样?)。

当黑白图转为彩图时,需要知道彩图中什么颜色是背景色,然后将黑白图中的白色转换成彩图中的背景色,黑色转换为彩图中的前景色,即textcolor。

这样在完成黑白图(1位)到彩图中的黑白图(8位)的转换,然后在用彩图中的黑白图与另一个设备环境进行像素操作(srccopy,srcand等)。

 

 

接下来就没什么难的地方了。自己慢慢理解了

 

 

 

你可能感兴趣的:(关于图片镂空和bitblt及setbkcolor等的理解)