说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在VB中实现位图的透明放置

HTML文档下载 WORD文档下载 PDF文档下载
在VB中实现位图的透明放置
作者:王翠荣 葛光祥
我们在开发一个软件中,通过扫描仪输进了大量实景图片,这些图片是以位图格式存储的,实际需要将这些图片透明放置到多彩色背景上,而在我们所使用的Visual Basic for Windows开发环境中,只能将WMF格式的矢量图(通过Image控件装载)透明放置到多彩色复杂背景图上,对位图只能象照片一样将图片上的每一个点阵信息贴到复杂背景上。本文讨论的问题就是如何将位图透明放置到多色彩背景上,用于实现不规则前景在复杂背景上的动画,并给出了源程序。
首先将图片通过扫描仪输入到计算机,以*.BMP格式存盘,然后利用图象处理软件对扫进的图片进行加工,加工过程中应注意:将来准备放到复杂背景上的信息不能是黑色,不准备放到复杂背景上的信息要过滤掉,一律置成黑色。只有这样才能实现将位图上所关注的形状不规则信息透明放置到多彩复杂背景上,且不覆盖背景。我们主要使用Windows的API函数BITBLT产生此效果。
基本步骤如下:
(1)首先在Forml上创建3个Picture控制,Name属性分别为PicCel(装载前景位图)、Picmatte(存放前景位图的黑白模板)、Bkgrd(存放复杂背景图象),再创建一个命令控制按钮Commondl。在PicCel上装入一幅黑色背景下的彩色位图;
(2)将PicCel上的图象拷贝到Picmatte上,然后在Picmatte上进行工作,即在Picmatte上逐行逐点扫描位图信息,凡是非黑色象素点将其置成白色,这样在Picmatte上产生了PicCel的一个黑白模板,Picmatte上的彩色图象大小和PicCel一样,只是将PicCel上的非黑色信息转换成白色;
(3)PicCel和Picmatte作反相invert运算产生PicCel的反相图象存于PicCel中;
(4)用或运算将Picmatte贴于复杂背景Bkgrd上;
(5)用异或运算将PicCel贴于复杂背景Bkgrd上。
程序清单如下:
1 Const srccopy=&HCC0020
2 Const srcinvert=&H660046
3 Const srcpaint=&HEE0086
4 Sub Command1 Click()
5 black=RGB(0,0,0)
6 white=RGB(255,255,255)
7 position=0’拷贝piccel到picmatte上
8 r%=bitblt(ByVal picmatte.hDC,ByVal 0,ByVal 0,ByVal piccel.width,ByVal piccel.Height,ByVal piccel.hDC,ByVal 0,ByVal 0,ByVal srccopy)
9 For scanline=0 To(piccel.Height-1)
10 Do‘取得picmatte上坐标为(position,scanline)点的颜色
11 currentcolor=getpixel(picmatte.hDC,position,scanline)
12 If currentcolor<>black Then‘如果该点不为黑色,则置为白色
13 retlong=setpixel(picmatte.hDC,position,scanline,white)
14 End If
15 position=position+1
16 Loop While position17 position=0
18 Next scanline ‘创建原位图piccel的反相图象
19 r%=bitblt(ByVal piccel.hDC,ByVal 0,ByVal 0,ByVal piccel.Width,ByVal piccel.Height,ByVal picmatte.hDC,ByVal 0,ByVal 0,srcinvert)
20 r%=bitblt(ByVal bkgrd.hDC,ByVal 10,ByVal 10,ByVal piccel.Width-1,ByVal piccel.Height-1,ByVal picmatte.hDC,ByVal 0,ByVal 0,srcpaint)
21 r%=bitblt(ByVal bkgrd.hDC,ByVal 10,ByVal 10,ByVal piccel.Width-1,ByVal piccel.Height-1,ByVal piccel.hDC,ByVal 0,ByVal 0,ByVal srcinvert)
22 End Sub
23 Sub Command2-Click()
24 End
25 End Sub
26 Sub Form-Load()
27 picmatte.Width=piccel.Width
28 picmatte.Height=piccel.Height
29 End Sub
开源的JS MVC框架 Backbone.js 1.0发布 前Facebook资深员工王淮给技术创业团队的十点建议 微软发布Windows Embedded 8系列操作系统 Google Play 4.0抢先体验 中国 vs. 非洲:移动医疗的前世今生 Java大数据框架初创企业Concurrent获400万美元融资 基于Edge Animate开发CSS3 Animations 后端服务商Firebase发布全新iOS SDK [爆料]百度云或在秘密打造实时移动Web App开发框架 打造最佳开发团队的几点建议 Facebook与开发者交恶 扼杀第三方应用 负载大逃亡:四十二路怪兽联军及七条逃生法则 那些年,MIT技术男们奇妙的黑客作品 深度分析:腾讯3.3亿美元收购Epic股份值吗? 传下一代iOS或将推行扁平化设计 iOS开发者注意:苹果将拒绝访问UDID的应用上架 领先Google、Amazon、Dropbox,Apple云存储用户最多 传IBM重新设计晶体管 预计五至七年内成熟 快讯:云计算大会6月召开 云计算概念企业股票飙升 集成开发环境:Qt Creator 2.7.0发布 移动周报:“今日头条”CEO,爱冒险的技术宅 从China Daily的iPad版,看中国纸媒如何摆脱“旧情结” 天睿推出大数据探索平台:“开箱即用”的数据分析 Basho开源Riak CS,与AWS S3兼容的云存储架构 MongoDB Days北京杂记 VMware携手亿阳信通 铺垫混合服务 行业应用,移动优先:移动难七大痛点剖析 HTML5开发必备:游戏开发资源合集 老而弥坚:65岁传奇Android工程师谈开发 2013中国云计算有奖大调查,每周大奖等你拿! Google Reader之死另一个不为人知的原因 一个form里面如何将6个radiobottom 分成两组? 开开关关IE窗口的小程序 请各位高手介绍一下win2K,wingate,sygate这些做上网服务器各使用什么技术?NAT?SOCK5? WIN2000 PRO. 怎样才能通过 NT4+MSPROXY 上网? ASP中如何实现等待几秒再执行下一步的功能? 数据库的烦恼之二 如何在程序中播放Power Point? 散分,帮我看看主机链接是否正常 BDE数据库的问题。 win2000中怎样配置开机启动文件(如98下的Msconfig) 痛苦的人请看 http://www.csdn.net/expert/topic/425/425671.shtm (UP者有分!) 关于strlen函数 高手请进 vc中是否有函数readline(),该如何调用, 如何将我写好的.java文件编译在单片机的系统中? 下载的.rar格式的文件怎样打开 怎么是查询(select)不受更新(update)的阻塞? 请老大帮帮我啊 怎样获得WIN98系统的日期格式啊? 超级终端的传输格式 关于strlen函数的问题 请教:关于soft-ice软件的问题 谁有Exange 2000操作手册之类的东东?还有下载ftp地址和密码,谢谢!收到马上给分!急用! NetUserAdd怎么用,我下面是否用错了,结果会蓝屏,dump!!(KMODE_EXCEPTION_NOT_HANDLED) 以超级终端YModem协议传输文件时,数据包的格式 想知道到底有多少公司用到ejb,j2ee,rmi? asp:HyperLinkColumn中的DataNavigateUrlFormatString如何带多个参数? 有关DataReport的使用 我怎样通过dcom调用applationserver上的方法 请问inter c++ compiler的头文件定义问题 请问哪些行业用Powerpoint比较多? 关于处理文件的问题,请指点…… 请问有谁知道只封锁ctrl+alt+del的方法. 很适合回去好好研究!欢迎指正!! 需要帮助,针对ActiveX OCX怎么能够对其数字签名从而降低其在IE中的安全性? 高分求一条 SQL 简单语句 ! tomcat4.0.1+oracle MDI子窗口在显示时,怎么样才能不出现最大化时的拉大的过程!!! 在jframe中用setIconImage()方法设置界面的图标,怎么好像不能用.ico的文件? jsp的分页技术 如何在98下ping死局域网中的一台机器(分数太多,想分人) 请问有没有一种图像处理工具…… 如何处理--在使用sql语句建表时的重表问题? 小弟请问各位大侠 写在控件里的鼠标指针用LoadCursor为什么取不出来? 请问如何在vc的控件面板中加入新的控件?vc中原有的控件存放在那个目录下? 请问如何把。JAVA文件编译在PDA里? 请问以前的贴子都放到哪去了? 强烈要求:Java板块再进行分类!所有问题都并在一起,实在太乱了!同意的请进来签名! ~~~~~~呵呵,散分,呵呵,qq61548901,mail wackly164@sohu.com不要黑我呵呵!!(俺是朱朱)~~ 我把JPG加到资源中的用户自定义项里了,怎么设到IMAGE里显示呢? 大家来看看这个问题,有点难度,看看有没有方法 三天打鱼两天晒网打了几天鱼,1天还是3于? 捕鱼还是捕渔 一个工人生产81个零件,有1个轻一点的废品,用天平称3次找出来,怎么称? 三天打鱼两天晒网打一词语 一箱橙子有15袋,其中14袋质量相同,1袋质量轻一些,用天平至少称几次能保证找出着袋轻的来? 16个零件,其中一个的质量比其他的都轻现用一架天平把废品找出来,至少用几次 蜜蜂能酿蜜,蚯蚓能松土,蚂蚁能帮人类干什么?十分急. 三天打鱼两天晒网的意思是什么 有15袋糖果,期中14袋规格都相同,另外一袋多了2块,你能用天平找出来吗、至少称几次 在一个阴湿山洼草丛中,有一根长满苔藓的腐木,其中聚集着蚂蚁,蚯蚓,蜘蛛,老鼠等动物.其中,阴湿山洼草丛中的蚂蚁是一个种群.为什么是错的?已经确定是错的了,请高手回答,忽悠的靠边站 三天打鱼两天晒网 形容一动物 三袋奶粉,其中两袋质量相同另一袋不知道是重还是轻,用天平至少称几次能保证找出质量不同的那袋? 有13盒糖果,其中12盒质量相同另有一盒少了几颗糖,如果用天平称,至少称几次可以找出这盒糖果?请写出过程 有18袋瓜子,其中一袋轻如何利用天平找出来,用图来表示过程 授人以鱼不如授之以渔是什么意思? 会发光的虫子除了萤火虫还有什么? 有18袋5香瓜子其中1袋质量稍轻如何利用天平把它找出来?用图表示出称的进程. 授之予鱼,不如授之予渔.具体点 .我不是很理解 . \除了萤火虫还有什么昆虫发亮光啊? 有12盒饼干,其中11盒质量相同,另一盒少几块,如果用天平称,至少称几次能保证找出这(用图来表示称的过程) 授之以鱼 这是什么昆虫,屁股和萤火虫一样还会发光 天秤的图案哪里有, 授之以鱼,不如授之以渔. 苍蝇和蚊子的发育过程给出详细过程 天平的样子图 授之以鱼 不如授之以渔 有什么典故?要具体的故事 3天打鱼 2天晒网 中国有句俗语叫“三天打鱼两天晒网”.某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”.我的程序在输入 1992 10 25 和1993 1 按一定顺序排列词语.动物 苍蝇 昆虫 害虫 中国的渔民一般用什么捕鱼?捕哪类的鱼?我在做题时碰到的困难~因为没有这方面经验,也没看过别人捕鱼,周围亲戚对这个也不了解.还望知道的人帮忙解答用什么鱼网捕鲫鱼? 两天打鱼三天晒网是什么动物 三天打鱼,两天晒网,按这样的方式,在100天内打鱼的天数是几nvbn 飞过海飞过海 渔民捕鱼归来,卸鱼的过程中,船受到的浮力发生变化的情况 两天打鱼三天晒网代表什么生肖 王大伯是位渔民他按三天打鱼两天晒网的规矩捕鱼算一算2001年王大伯捕鱼的时间一共是多少天 数学题有四只药瓶,三只药瓶中每颗药丸的重量都一样,有一瓶比其他都重,拿天平称,只称一次, 三天打鱼两天晒网昰三天中打两天鱼,晒一天网,还是三天打渔,两天晒网?(五天) 三天打鱼,两天晒网,按照这种工作方式,60天内有多少天在打鱼? 有五个药瓶,各装100粒药片,其中有一个药瓶受潮,正常药片每粒1克,受潮每粒1.1克,用天平称只需一次就能 有16盒糖果,其中有15盒质量相同另有一盒少了几个,如果用天平称,至少称多少次能保有16盒糖果,其中有15盒质量相同,另有一盒少了几个,如果用天平称,至少称多少次能保证找出这盒糖果?( “三天打渔,两天晒网”到底是几天?“三天打渔,两天晒网”是前三天渔,后两天不出海,在家晒网;一共5天?还是三天打渔的工作中,有两天在晒网;一共3天? 有10瓶药 其中9瓶质量相同 1瓶少3粒 用天平至少称几次能把这瓶药找出来?一个长方体 长宽高分别是4dm有10瓶药 其中9瓶质量相同 1瓶少3粒 用天平至少称几次能把这瓶药找出来?一个长方体 长 这是什么虫子?全黑,像蚊子、像苍蝇又像马蜂. 三天打渔,两天晒网换成成语是什么? 有7瓶酱油,其中6瓶质量相等,另一瓶质量轻些,用天平至少称多少次能找到这瓶酱油? 不知名的虫子能用全无敌(杀蚊子苍蝇的)喷么?家里有棵梅花,最近生了一种虫,在叶子和枝子间联成丝线,上面密密麻麻有小虫子爬,也不知道什么主枝干上也有.连打了治蚜虫、红蜘蛛的药2天 关于“三天打渔,两天晒网”这句话.呵呵,本人比较无聊,问一下这句话的原意,到底是打了三天,然后晒了两天,还是三天的时间有两天在晒网. 渔民以前与现在捕鱼方式有哪些不同 富贵树生虫子(蚊子,小苍蝇,飞的小虫)我家有一盆富贵树,最近生虫子,好多,喷药也不好使?怎么办? 蝴蝶 昆虫 动物 凤尾蝶 把这几个排列顺序?怎么排? 中国古代的渔民打鱼用的是什么?如果是鱼网.那材料是什么? 三天打鱼两天晒网在一百天内有多少天在打渔求算式并说出为什么 答案是六十天 “三天打渔,两天晒网”究竟是几天在打渔?是打渔的工作周期为五天,有三天在打渔;还是三天中只有一天在打渔?求教!(有没有确切出处或考证?古代渔民的作业规律?) 中国渔民还能去哪里捕鱼?南边被菲律宾、越南这样的无赖国家用炮艇追!东边被韩国人、日本人扣押、罚款!现在又被朝鲜抓扣、敲诈!想知道ZF对此有什么看法!╮(╯▽╰)╭还有个问题就是我 家里多了好多虫子 不是蚊子也不是苍蝇不知道是什么 越来越来多怎么办以前都没有的自从我从3楼搬到2楼 然后打扫整栋楼 扫地拖地板 然后那天晚上我开着窗户 纱窗挡住了 但是不知道为 有10个乒乓球,其中有1个质量相同,另一个较轻一点,如果用天平秤,至少称()次能保证能找出这个乒乓球. 某渔民三天打鱼,两天晒网.打渔的天数占全年的百分之几?晒网呢?急呀. 三天打鱼,两天晒网,照这样的方式,在100天内打鱼的天数是多少天? 24盒牛奶,其中23盒的质量相同,只有一盒少了些,用天平称至少称多少次才能保证找到这盒牛奶? 一批零件有81个,其中一个是废品,它的内部有空洞,质量较小.一位同学用天平把它挑出来,只需测几次
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn