我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: [提问]关于位图 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

albert





性别: 保密 状态: 该用户目前不在线
等级: 栋梁之材
家族: 唯war独尊
发贴: 634
威望: 0
浮云: 1116
在线等级:
注册时间: 2005-10-04
最后登陆: 2012-02-12

5come5帮你背单词 [ plank /plæŋk/ n. 板条 ]


[提问]关于位图

在外网上看到了一篇关于透明位图的问题,但有一些地方不明白。望高手指点。
原文如下:
包含透明色的位图的绘制方法有多种,最简单的方法是调用现成的函数:TransparentBlt,也可以通过自己的代码实现类似TransparentBlt的功能,实现过程也有两种形式,一种是事先做一张掩码位图,另一种是动态生成掩码位图。本文将介绍动态生成掩码位图绘制具有透明区域位图的方法。

为了理解具有透明色位图的绘制过程,我们来亲手建立一个具有同TransparentBlt功能一致的实验函数,称之为TransparentBlt2。

实验素材:有两张位图:bk.bmp是背景位图,football.bmp包含透明区域,透明色为蓝色RGB(0,0,0xff)
实验目的:以bk.bmp为背景,将football.bmp绘制到背景中,形成如下的最终效果图。

[attachment=869801]


2.1 透明位图绘制原理
假设football.bmp ->载入 HBITMAP hImageBMP -> 选入 HDC hImageDC

2.1.1 生成足球的单色掩码位图,透明区域为白色(全1),非透明区域为黑色(全0) HBITMAP hMaskBMP = CreateBitmap(nWidthDest, nHeightDest, 1, 1, NULL); // 建立单色位图
SetBkColor(hImageDC, RGB(0,0,0xff)); // 设置背景色为蓝色
BitBlt(hMaskDC, 0, 0, nWidthDest, nHeightDest, hImageDC, 0, 0, SRCCOPY); // 拷贝到hMaskDC
这样足球位图中蓝色区域在掩码位图中成了白色,其它区域为黑色,此时hMaskBMP 如下图:
[attachment=869802] (图一)

2.1.2 设置背景色为黑色,前景色为白色,将掩码位图(图一)与足球位图相"与" SetBkColor(hImageDC, RGB(0,0,0));
SetTextColor(hImageDC, RGB(255,255,255));
BitBlt(hImageDC, 0, 0, nWidthDest, nHeightDest, hMaskDC, 0, 0, SRCAND);

这样,掩码位图中背景色(黑色)的区域在hImageBMP中被保留,前景色(白色)的部分变为黑色。 此时hImageBMP 如下图:
[attachment=869803] (图二)

2.1.3 设置背景色为白色,前景色为黑色,将掩码位图(图一)与背景进行“与”运算
SetBkColor(hdcDest,RGB(255,255,255));
SetTextColor(hdcDest,RGB(0,0,0));
BitBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest, nHeightDest, hMaskDC, 0, 0, SRCAND);
掩码中白色区域(数据与1相“与”结果不变)使背景保持不变,黑色区域变成黑色,此时背景显示如下:
[attachment=869804] (图三)

2.1.4 将hImageBMP(图二)与背景(图三)进行“或”运算 BitBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest, nHeightDest, hImageDC, 0, 0, SRCPAINT);
这样就将足球绘制到背景上了。

问题:这里,生成图一(掩码图)的原理我基本上搞清楚了,但是在生成图二和图三之前,为什么要先那样设置前景色和背景色就不明白了。望高手指点一二


[ 此贴被albert在2007-01-13 22:46重新编辑 ]
顶端 Posted: 2007-01-13 22:33 | [楼 主]
ufly



性别: 帅哥 状态: 该用户目前不在线
等级: 希望之光
发贴: 1930
威望: 0
浮云: 1366
在线等级:
注册时间: 2006-06-19
最后登陆: 2010-10-14

5come5帮你背单词 [ utterance /'Λtərəns/ n. 发言,表达,话,说话 ]


我一直还以为图像叠加起来是异或运算呢
顶端 Posted: 2007-01-13 22:38 | [1 楼]
only.rainbow



性别: 帅哥 状态: 该用户目前不在线
头衔: 终于有了新的梦想:四手联弹
等级: 人见人爱
发贴: 3353
威望: 4
浮云: 1201
在线等级:
注册时间: 2005-09-22
最后登陆: 2010-12-27

5come5帮你背单词 [ parachute /'pærəu:t/ n. 降落伞;v. 用降落伞投送/降落 ]


..................888888888888888888888888
...............8888:::8888888888888888888888888
.............8888::::::8888888888888888888888888888
............88::::::::888:::8888888888888888888888888
..........88888888::::8:::::::::::88888888888888888888
........888.8::888888::::::::::::::::::88888888888...888
...........88::::88888888::::顶::::::::::88888888888....8
.........888888888888888888:顶:::::::::::8888888888888
........88888888888888888888::::::::::::顶88888888888888
........8888888888888888888888:::::::::顶8888888888888888
.........8888888888888888888888:::::::顶888888888888888888
........8888888888888888::88888::::::顶88888888888888888888
......88888888888888888:::88888:::::顶888888888888888...8888
.....88888888888888888:::88888::::顶::;o*顶*o;888888888....88
....88888888888888888:::8888:::::顶:::::::::::88888888....8
...88888888888888888::::88::::::顶:;:::::::::::888888888
..8888888888888888888:::8::::::顶::aaa::::::::顶8888888888.......8
..88...8888888888::88::::8::::顶:::::::::::::888888888888888.8888
.88..88888888888:::8:::::::::顶::::::::::;::88:88888888888888888
.8..8888888888888:::::::::::顶::"@@@@@@@"::::8w8888888888888888
..88888888888:888::::::::::顶:::::"@a@":::::顶8i888888888888888
.8888888888::::88:::::::::顶88:::::::::::::顶88z88888888888888888
8888888888:::::8:::::::::顶88888:::::::::顶顶888!888888888888888888
888888888:::::8:::::::::顶8888888顶a顶顶顶a顶v顶顶888*88888888...88888888
888888.顶:::::::::::::::顶888888888:::::::顶顶88888888888888...8888888
8888...顶::::::::::::::顶88888888888::::::顶顶888888888888888....88888
.888...顶:::::::::::::顶8888888888888顶:::::顶顶888888888888888....8888
..888..顶::::::::::::顶8888:888888888888::::顶::顶顶88888.888888...8888
...88..顶::::::::::::8888:88888888888888888::::::顶顶8...88888...888
...88..顶::::::::::8888顶::88888::888888888888:::::::顶顶88888....88
...8...顶顶::::::::8888顶:::8888:::::888888888888::::::::顶顶8.....4
.......8顶:::::::8888顶:::::888:::::::88:::8888888::::::::顶顶....2
......88顶顶:::::8888顶:::::::88::::::::8:::::888888:::顶:::::顶
.....8888顶:::::888顶顶::::::::8:::::::::::顶::::8888::::顶::::顶
....88888顶:::::88:顶::::::::::8:::::::::::顶:::8888::::::顶::顶
...88.888顶顶:::888:顶:::::::::::::::::::::::顶:8888:::::::::顶:
...8.88888顶:::88::顶:::::::::::::::::::::::顶顶:88::::::::::::顶
.....88888顶:::88::顶::::::::::*88*::::::::::顶:88::::::::::::::顶
....888888顶:::88::顶:::::::::88@@88:::::::::顶::88::::::::::::::顶
....888888顶顶::88::顶顶::::::::88@@88:::::::::顶:::8::::::::::::::*8
....88888..顶:::8::顶顶:::::::::*88*::::::::::顶:::::::::::::::::::88@@
....8888...顶顶::::::顶顶:::::::::::::::::::::顶顶::::::::::::::::::88@@
.....888....顶:::::::顶顶:::::::::::::::::::顶顶::顶:::::::::::::::::*8
.....888....顶顶:::::::顶顶顶::::::::::::::::顶顶:::顶顶:::::::::::::顶
......88.....顶::::::::顶顶顶顶:::::::::::顶顶顶顶:::::顶顶::::::::顶
.......88....顶顶:::::::::顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶::::::::顶顶
........88....顶顶::::::::::::顶顶顶顶顶顶顶::::::::::::::顶顶顶
.........88...8顶顶::::::::::::::::::::::::::::::::::顶顶顶
..........8...88顶顶::::::::::::::::::::::顶:::顶::::::::顶顶
..............888顶顶::::::::::::::::::顶顶::::::顶顶::::::顶顶
.............88888顶顶:::::::::::::::顶顶顶:::::::顶顶:::::顶顶
.............888888顶顶:::::::::::::顶顶顶:::::::::顶顶顶:::顶
............88888888顶顶:::::::::::顶顶顶:::::::::::顶顶:::顶
...........88.8888888顶:::::::::顶顶顶::::::::::::::顶:::顶
...........8..888888.顶:::::::顶顶:::::::::::::::::顶:::顶:
..............888888.顶::::::顶:::::::::::::::::::顶:::顶顶
.............888888..顶:::::顶::::::::::::::::::::::::顶:顶
.............888888..顶:::::顶:::::::::@::::::::::::::顶::顶
.............88888...顶::::::::::::::@@:::::::::::::::顶::顶
............88888...顶::::::::::::::@@@::::::::::::::::顶::顶
...........88888...顶:::::::::::::::@@::::::::::::::::::顶::顶
..........88888...顶:::::顶::::::::::@::::::::::顶顶:::::::顶:::顶
..........8888...顶:::::顶:::::::::::::::::::::::顶顶:::::::顶:::顶
.........8888...顶:::::顶:::::::::::::::::::::::顶顶顶::::::::顶:::顶
........888....顶:::::顶顶::::::::::::::::::::::顶顶顶:::::::::顶::::顶
......8888....顶顶::::顶顶:::::::::::::::::::::顶顶顶顶:::::::::顶::顶:::顶
.....888......顶:::::顶::::::::::::::::::::顶顶顶::::::::::::顶::顶顶:::顶
..8888.......顶顶:::::::::::::::::::::::::顶顶:::::::::::::顶顶::顶顶:::顶:
.............顶:::::::::::::::::::::::::顶:::::::::::::::顶顶::顶顶:::顶顶
............顶顶::::::顶:::::::::::::::::::::::::::::::::::顶::顶顶:::顶顶
............顶::::::::顶:::::::::::::::::::::::::::::::::::顶::顶:::顶顶
...........顶顶:::::::::顶:::::::::::::顶:::::::::::::::::::::顶:顶:::顶顶
...........顶:::::::::::顶88:::::::::顶:::::::::::::::::::::::顶顶::顶顶顶
...........顶::::::::::::8888888888顶::::::::::::::::::::::::顶顶::顶顶
...........顶:::::::::::::88888888顶:::::::::::::::::::::::::顶::顶顶
...........顶::::::::::::::888888顶:::::::::::::::::::::::::顶::顶顶
...........顶:::::::::::::::88888顶:::::::::::::::::::::::::顶:顶顶
...........顶:::::::::::::::::88顶::::::::::::::::::::::::::顶顶顶
...........顶:::::::::::::::::::顶::::::::::::::::::::::::::顶顶顶
...........顶顶:::::::::::::::::顶::::::::::::::::::::::::::顶顶顶
............顶:::::::::::::::::顶::::::::::::::::::::::::::顶顶顶
............顶顶:::::::::::::::顶::::::::::::::::::::::::::顶顶顶
.............顶:::::::::::::::顶:::::::::::::::::::::::::顶顶顶
.............顶顶:::::::::::::顶:::::::::::::::::::::::::顶顶顶
..............顶:::::::::::::顶::::::::::::::::::::::::顶顶顶
..............顶顶:::::::::::顶::::::::::::::::::::::::顶顶顶
...............顶:::::::::::顶:::::::::::::::::::::::顶顶顶
...............顶顶:::::::::顶:::::::::::::::::::::::顶顶顶
................顶:::::::::顶::::::::::::::::::::::顶顶顶
................顶顶:::::::顶::::::::::::::::::::::顶顶顶
.................顶顶::::::顶:::::::::::::::::::::顶顶顶
.................顶顶:::::顶:::::::::::::::::::::顶顶顶
..................顶顶::::顶::::::::::::::::::::顶顶顶
..................顶顶:::顶::::::::::::::::::::顶顶顶
...................顶顶::顶:::::::::::::::::::顶顶顶
...................顶顶:顶:::::::::::::::::::顶顶顶
....................顶顶顶::::::::::::::::::顶顶顶
....................顶顶::::::::::::::::::顶顶顶
.....................顶:::::::::::::::::顶顶顶
....................顶顶::::::::::::::::顶顶顶
....................顶顶:::::::::::::::顶顶顶
....................顶顶::::顶:::::::::顶顶顶:
....................顶顶顶::::顶顶:::::::顶顶顶顶
.....................顶顶顶:::::::::::顶顶顶:顶
.....................顶顶顶:::顶:::::::顶:顶:顶
......................顶顶::顶顶顶顶:::::::顶:顶
......................顶顶::顶顶顶::::::::顶:顶
......................顶顶顶::顶顶::::::::顶:顶
.......................顶顶::顶顶:::::::::顶:顶
.......................顶顶::顶顶::::::::::顶:顶
.......................顶顶:::顶:::::::::::顶顶
.......................顶顶顶:::::::::::::::顶:
.......................顶顶顶:::::::::::::::顶:
.......................顶顶顶::::::::::::::::顶
.......................顶顶顶::::::::::::::::顶
.......................顶顶顶::::::::::::::::顶顶
........................顶顶::::::::::::::::顶顶
........................顶顶顶:::::::::::::::顶顶
........................顶顶顶:::::::::::::::顶顶
........................顶顶顶:::::::::::::::顶顶
........................顶顶顶:::::::::::::::顶顶
.........................顶顶::::::::::::::顶顶顶
.........................顶顶顶:::::::::::::顶顶
.........................顶顶顶:::::::::::::顶顶
.........................顶顶顶::::::::::::顶顶
..........................顶顶::::::::::::顶顶
..........................顶顶::::::::::::顶顶
..........................顶顶:::::::::::顶顶
..........................顶顶顶::::::::::顶顶
..........................顶顶顶::::::::::顶顶
...........................顶顶:::::::::顶顶
...........................顶顶顶::::::::顶顶
...........................顶顶顶::::::::顶顶
............................顶顶::::::::顶顶
............................顶顶顶::::::顶顶
............................顶顶顶::::::顶顶
.............................顶顶::::::顶顶
.............................顶顶::::::顶顶
..............................顶顶:::::顶顶
..............................顶顶:::::顶顶:
..............................顶顶:::::顶:顶
..............................顶顶:::::顶:顶
..............................:顶::::::顶:
.............................顶:顶:::::::顶
............................顶:::顶::::::顶
...........................顶::::顶::::::顶
..........................顶:::::顶:::::::顶
.........................顶::::::顶顶:::::::顶
.........................顶:::::::顶::::::::顶
.........................顶;:;::::顶:::::::::顶
.........................顶:顶:;:::顶::::::::::顶
.........................顶顶:顶:顶::顶::::::::;:顶
..........................顶顶:顶::顶顶:::::::;:;顶
...........................顶顶::顶顶顶::::::;:顶:顶
............................顶顶顶顶.顶顶::::顶:顶:顶顶
..................................顶顶::::顶:顶顶
...................................顶顶::::顶顶
本帖最近评分记录:
  • 浮云:0 (by kangtalc) | 理由: 居然在这里发裸图,安?想死了哇?
  • 顶端 Posted: 2007-01-19 16:35 | [2 楼]
    debuger





    性别: 保密 状态: 该用户目前不在线
    等级: 品行端正
    发贴: 410
    威望: 0
    浮云: 1227
    在线等级:
    注册时间: 2004-12-25
    最后登陆: 2007-04-10

    5come5帮你背单词 [ foundation /faun'deiən/ n. 建设,基础,基金(会) ]


    Quote:
    引用第0楼albert于2007-01-13 22:33发表的[提问]关于位图:
    在外网上看到了一篇关于透明位图的问题,但有一些地方不明白。望高手指点。
    原文如下:
    包含透明色的位图的绘制方法有多种,最简单的方法是调用现成的函数:TransparentBlt,也可以通过自己的代码实现类似TransparentBlt的功能,实现过程也有两种形式,一种是事先做一张掩码位图,另一种是动态生成掩码位图。本文将介绍动态生成掩码位图绘制具有透明区域位图的方法。

    为了理解具有透明色位图的绘制过程,我们来亲手建立一个具有同TransparentBlt功能一致的实验函数,称之为TransparentBlt2。
    .......

    就是为了变于后面做运算啊,相当于一个filter
    顶端 Posted: 2007-03-02 23:11 | [3 楼]
    newton



    性别: 保密 状态: 该用户目前不在线
    头衔: Messi + Aimar
    等级: 人见人爱
    家族: 考研俱乐部
    发贴: 2770
    威望: 1
    浮云: 1777
    在线等级:
    注册时间: 2004-11-27
    最后登陆: 2017-06-08

    5come5帮你背单词 [ recognise // vt. 承认,认可,认出,识别 ]


    就是位运算而已。。。。没那么复杂
    顶端 Posted: 2007-03-03 11:56 | [4 楼]
    我来我网·5come5 Forum » 程序员之家

    Total 0.010257(s) query 5, Time now is:11-23 18:42, Gzip enabled
    Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号