vc 透明显示位图

周边任选+年卡加赠!下单送Coding Plan 卫衣/双肩包/T恤/羽绒服任选,赠CSDN会员年卡+Coding Plan,学习装备一起拿下! 阅读详情
  透明显示,是指在将图象显示到背景上时,图象上颜色为某种指定颜色的象素不被显示出来,而保留该处的背景显示.被指定的特定颜色叫做透明色。利用透明显示可以在背景上显示不规则的图形,是许多图象操作的基础,比如背景动画.
    最直观的透明显示方式是遍历图象的每一象素,如果象素的颜色不等于透明色,则显示该象素,否则不显示.但这种方法的缺陷是致命的,其实现速度太慢!
    使用BitBlt函数不仅是显示位图的最快的方法,而且利用该函数的光栅操作码参数可以实现位图与背景的不同融合方式,参见第2章的表2-3.通过设置一定的屏蔽位图,并组合使用适当的光栅操作方式,就可以用Bitblt函数来实现位图的透明显示,其基本的实现步骤如下:
    (1)创建一个与需透明显示位图(源位图b0)同样大小的单色屏蔽码位图b1.将屏蔽码位图中与显示位图中需透明的象素具有相同位置的象素设置为白色,与不透明的象素具有相同的象素设置为黑色.
    (2)用BitBlt函数,以SRCAND光栅操作码将b1单色屏蔽码位图与背景位图组合起来,生成位图b2.这时不透明的象素在b2上将显示为黑色.
    (3)将单色屏蔽码位图b1取反到单色位图b3,用BitBlt函数,以SRCAND光栅操作码将b3与b0组合起来,得到位图b4.这时b4中透明的象素将显示为黑色.
    (4)用BitBlt函数,以SRCINVERT(异或)光栅操作码将第三步中得到的位图b4显示到第二步中得到的位图b2组合起来,得到位图b5.这时b5中背景将透过源位图中的透明色显示出来
    (5)用Bitblt函数,以SRCCOPY光栅操作码将b5显示到背景位图中,实现了位图的透明显示. 
VC中的位图透明 立即下载

相关推荐

浅谈VC++实现透明位图显示

浅谈VC++中位图透明显示!关于贴图的空白部分或者其他部分的透明化来显示窗口背景,美化程序

vc实现透明位图透明背景

vc实现透明位图透明背景<br />  我们在进行程序的界面设计时,常常希望将位图的关键部分,也既是图像的前景显示在界面上,而将位图的背景隐藏起来,将位图与界面很自然的融合在一起,本文介绍了透明位图的制作知识,并将透明位图在一个对话框中显示了出来。<br />   一、实现方法<br />  绘制"透明"位图是指绘制某一位图中除指定颜色外的其余部分,我们称这种颜色为"透明色"。通过将位图的背景色指定为"透明色",在绘制时,不绘制这部分背景,而仅绘制图像,这样就可以将位图中图像透明地绘制到窗口上。<br /

yuancong1989110s的专栏 785

精通Visual C++图象编程------读书笔记8

    透明显示,是指在将图象显示到背景上时,图象上颜色为某种指定颜色的象素不被显示出来,而保留该处的背景显示.被指定的特定颜色叫做透明色。利用透明显示可以在背景上显示不规则的图形,是许多图象操作的基础,比如背景动画.    最直观的透明显示方式是遍历图象的每一象素,如果象素的颜色不等于透明色,则显示该象素,否则不显示.但这种方法的缺陷是致命的,其实现速度太慢!    使用BitBlt函数

orichisonic的专栏 785

VC——位图透明显示

这里大部分内容摘自http://www.vckbase.com/document/viewdoc/?id=532 王俊的《透明位图显示》。自己在看程序的过程中,遇到一些问题,所以进行少量的补充和说明。包含透明色的位图的绘制方法有多种,最简单的方法是调用现成的函数:TransparentBlt,也可以通过自己的代码实现类似TransparentBlt的功能,实现过程也有两种形式,一种是事先做一

qsycn的专栏 1944

C语言TransparentBlt函数,技术分享 - 使用TransparentBlt函数实现绘制透明位图

背景在自己本科的时候,喜欢用 VC6.0 写一些小游戏来锻炼自己的编程水平。那些小游戏的游戏画面绘制都是使用Windows提供的GDI(图形设备接口)函数实现的,并没有调用现成的游戏引擎。所以,使得自己对GDI函数比较熟悉,能用它开发各式各样的小游戏。其中,那些小游戏都会用到的一个关键技术,便是透明位图的绘制。现在,我把之前自己开发小游戏时,绘制透明位图的方法总结一下,分别为大家介绍一下三种实现方...

weixin_30194213的博客 1100

如何在VC显示透明背景位图

简单的调用系统API。Windows NT/2000/XP: Included in Windows 2000 and later.Windows 95/98/Me: Included in Windows 98 and later.Header: Declared in Wingdi.h; include Windows.h.Library: Use Msimg32.lib. void CTransparentBltTestDlg::OnPaint() {     CPa

做一个优雅的程序员 1699

vc显示位图的总结

好不容易有些自己打的字来发表,得瑟一下,呵呵 第一种方法: 1. 用加载过位图位图对象,创建一个图案画刷    CBitmap bitmap;  bitmap.LoadBitmap(IDB_NEEDLE);  m_brsh.CreatePatternBrush(&b

wateryh的专栏 497

透明显示原理及其实现 [转]

<br />透明显示原理及其实现 图标显示原理  其实,Windows中随处可见的图标就是一个透明位图的典型实例。  图标是由两个单独的位图组成的。第一个位图是由黑色(颜色位全为0)背景与彩色图标图案组成的,该位图将与当前屏幕显示通过异或(XOR)操作结合起来,故称其为XOR位图。第二个位图是由白色(颜色位全为1)背景与黑色(颜色位全为0)图标图案组成的,该位图将与当前屏幕显示通过与(AND)操作结合起来,故称其为AND位图。图标的显示是通过两个步骤完成的:   当前屏幕显示与AND位图通过AND操作结合起

zbychhaozeng的专栏 1158

透明显示原理及其实现

图标显示原理   其实,Windows中随处可见的图标就是一个透明位图的典型实例。   图标是由两个单独的位图组成的。第一个位图是由黑色(颜色位全为0)背景与彩色图标图案组成的,该位图将与当前屏幕显示通过异或(XOR)操作结合起来,故称其为XOR位图。第二个位图是由白色(颜色位全为1)背景与黑色(颜色位全为0)图标图案组成的,该位图将与当前屏幕显示通过与(AND)操作结合起来,故称其为AND位

wanzhongyi的专栏 632

Visual C++中DDB与DIB位图编程全攻略

 1. 基本概念 先来用通俗的语句讲解位图和调色板的概念。 我们知道,自然界中的所有颜色都可以由红、绿、蓝(R,G,B)三基色组合而成。针对含有红、绿、蓝色成分的多少,可以对其分别分成0~255个等级,而红、绿、蓝的不同组合共有256×256×256种,因此约能表示1600万种颜色。对于人眼而言,这已经是"真彩色"了。 对每个像素进行了(R,G,B)量化的图像就是位图,其在计算

shuaiqidiudiu的专栏 2116

VC对话框如何添加WM_ERASEBKGND消息(OnEraseBkgnd函数)及对话框使用位图背景并透明

<br />VC对话框如何添加WM_ERASEBKGND消息(OnEraseBkgnd函数)<br />转帖来自:http://guohaiyang.blog.163.com/blog/static/3213403720081027104147/<br />1、首先,为了下面使用擦除背景的方便,先增加OnEraseBkgnd函数(WM_ERASEBKGND ),但好多新手都不知道对话框在那里找增加这个函数,来跟我来<br />快捷键Ctrl+W打开ClassWizard对话框(菜单->view->Class

流媒体播放器开发 6748

VC6中透明背景的处理

此方法需要加入静态库Msimg32.lib 。1.建立bitmap资源 2.增加CBitmap对象在类中 3.在对话框OnPaint()中     CDC ImageDC;     bmpSoftVer.LoadBitmap(IDB_CN_ABOUT);

火边的冰块的专栏 885

PNG透明窗体全攻略(控件不透明

源代码下载地址:http://download.csdn.net/source/1604248 编译环境:vc6+winxp sp3测试通过   这两天在研究透明窗体,总算略有小成。网上大部分文章都是介绍到把窗体弄透明就没有下文。其实窗体透明并不难,难就难在透明的窗体上还要放控件。今天我就把窗体透明一直到控件不透明怎么制作一块给写了吧。      先截张图诱惑下你们,如果你没兴趣就没必要再

把握自己。 3238

wince 图片背景透明处理

wince 图片背景透明处理

achellies's Blog 2487

如何制作具有声音效果的动画桌面精灵

如何制作具有声音效果的动画桌面精灵作者:徐景周下载实例代码:http://www.csdn.net/cnshare/soft/7/7085.shtmhttp://www.csdn.net/cnshare/soft/6/6620.shtm你想制作出一个在桌面上透明显示,动态唱歌的桌面小精灵么?下面我来用我原来做的一个例子来教你如何来实现它。例子运行界面如下:

jz_x的专栏 3215

透明位图

透明位图      我们在进行程序的界面设计时,常常希望将位图的关键部分,也既是图像的前景显示在界面上,而将位图的背景隐藏起来,将位图与界面很自然的融合在一起,本文介绍了透明位图的制作知识,并将透明位图在一个对话框中显示了出来。 一、实现方法  绘制"透明"位图是指绘制某一位图中除指定颜色外的其余部分,我们称这种颜色为"透明色"。通过将位图的背景色指定为"透明色",在绘制时,不绘制这部分背景,而

敦格 3561
下一篇: 桌面精灵
elang2006
博客等级 码龄20年 2粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值