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

在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
【直击美国云计算】面对AWS,VMware不会畏缩 美国白宫任命Twitter法务总监Nicole Wong为副CTO Keek宣布推出首款视频Update API 专访阿里前端工程师:淘宝移动Web开发那些事儿 【直击美国云计算】为什么eBay用燃料电池来驱动他的犹他州数据中心 【直击美国云计算】6周发布新产品,LinkedIn的trunk-based开发 移动周报:疯狂吐槽还是更得欢心?细数iOS 7的是与非 国内最受欢迎的开源项目集锦 开始3D编程前需注意的十件事 [CTO俱乐部第100期]软件平台的新思维及2345技术团队管理经验分享 失败怪圈:今天的移动App在重蹈1999年的覆辙 极客编程必备的五大PHP开发应用 Oracle或将宣布与Salesforce.com,NetSuite以及微软结盟 【专访间】神州数码谢耘:智慧城市需要以“融合平台”为特征的沃尔玛模式 对话OW2 CEO:开源≠安全隐患,免费≠无利可图 不断抄袭的Facebook正逐步沦为一家普通的公司 Windows 8.1会不会把Windows 8的“Modern”开发者踢到路边 任志鹏:FusionCloud是华为二十年技术积累的精华 机器学习典范?iOS7中的Siri能主动学习如何发音 三星宣布关闭PC业务 主推便携设备和一体机 Web设计师必须掌握的六大设计策略 Facebook为什么要推Instagram视频分享功能? 天气预报(id后面的9位数字为城市代码)年月日,星期,当前时间(仅用于javascript) PHP 5.5.0发布 不再支持Windows XP和2003 专访ThinkPHP创始人刘晨:用最简单最快速的方式开发PHP应用 重构:仔细查看,改进代码 加速编码的17款最棒的CSS工具 生于微信:专访疯狂猜图CEO曹晓刚 谷歌:受感染的合法网站远比恶意网站危险性大 Mozilla正式发布Firefox 22应用程序开发者受益 支持3D游戏、视频通话和文件分享 直接拿来用!最火的前端开发项目(一) 求超级兔子魔法设置4.2的注册码,一定高分相送 如何调用数据库中带输入、输出参数的存储过程 ASP页面里用下拉框控制日期显示时,没有31号的月份怎么控制不显示31号呢? 寻EPOC高手。 刚学VC要注意点什么哈 如何将BMP图形转成JPEG后,存入数据呢?请教! 脸红请教! 先装好了linux还能加装windows吗? 请问高手:怎样在interDev6.0中调试ASP?? 高手请教,在线等待 一段代码整体一定的快捷方式 MSHFlexGrid的数据显示问题!(40) 使用ADO时,说interface not supported是怎么回事? 请教! 谁知哪儿有flash控制影片的源文件? 怎样把SQL Server中的数据库导出成*.sql文件? 2000SERVER 奇怪:0x80004005 错误,但是在以前的帖子里没有提到 建议:加入精华区的帖子可以改名。有的帖子内容很好,但标题说得不清楚。这样也方便于分类。 有谁知道那里有漂亮的图标下载? 请问如何注册 关于文章“上一篇”“下一篇”的问题 如何在程序中打开一个对话框让用户选择一个目录(别的程序中非常的普遍使用,谢谢) 在同一个系统里,可以同时装2个office吗,一个英文版的和一个中文版的可以吗,? 请问怎样在PB应用程序中的工具栏使用大于16×16的在图标? 如何设置单元格 一个关于高位低位的问题。谢谢。 怎么能知道自己的主板的性能、好坏?比如.... 不知道有谁对ISDN比较了解有这方面的资料吗? 这样的爱是维持多久? 我尝试通过网络免费提供关于如下方面的技术支持服务,并欢迎有兴趣者一起进行讨论。各类问题可以发mail: stevewh@ynmail.com 数据访问ADO与DAO、RDO各用在什么场合下? 在存储过程中的问题,看大家能者见能,智者见智,帮帮手! 如何在在桌面上单击右键弹出的快捷菜单中加入一个项目"启动我的电脑"? 想买一款显示器,不知道是三星好还是PHILIPS好!请大家帮我选择选择!(低档纯屏,<1600元(50分) 在win98下配置tomcat的问题? 什么样的主板需要安VIA 4 IN 1?? gicq玩家的间题 请taglis2002来借分。 急!Edit中输入日期的问题 急!DBGrid的栅格问题 为啥Oracle中还有近5G的表空间,当插入某表时却提示要增加数据文件,而别插入别的表却没问题(送分的) 有关中文显示的问题 谁用过CSTreeBean,有问题请教 VB里是不是没有从一个字符串中选出数字的函数? 一个关于高位低位的问题 请问用Dbexpress如何生成一个临时表 经典的“HELLO WORLD” 错在哪里? 有人在我的机器上安装了特洛依木马程序,我删不掉,怎么办啊??? 20 分:help me!!!!!!!!!! 我可以报考高程吗? 在匀强电场中分布着A、B、C三点,当把一个电量q=1x10^-5库伦的正电荷从A点沿AB线移到B点时,电场力做功为零.{(^-5)表示-5次方,下同}.从B点到C点时,电场力做功为-1.73X10^-3,试判断该电厂的方向, 探究影响摩擦力因素的实验,运用到二力平衡的知识是( ),显示摩擦力大小的方法叫做()法 如图所示,物体A重GA=10N,B重GB=5N,A、B间及B与斜面间的静摩擦因数均为μ=0.1.求物体C的重力GC在什么范围内时,A、B、C三物组成的系统可静止?(滑轮与绳间摩擦不计) 静电平衡的导体表面和内部的电势都相等,为什么表面的场强不为0 给.着色用英语怎么说 下图所示,GA=100N,GB=10N,不计轮重绳重和机械摩擦,B刚好匀速下降,在A上加一水平向左的拉力,使B以0.5m/s的速度匀速上升,拉力在4s内做的功是多少 角色扮演、劳动者、劳动争议、社会保障、劳动关系、绩效管理、企业文化、社会救助 "混纺染色"英语怎么说T/R 四面弹用混纺染色,那这个混纺染色用英文怎么讲? 如图所示,物体A重为GA=10N,物体B重为GB=10N,作用在A物体上的水平力F=4N,两物体都处于静止状态.试求物体A所受的支持力和摩擦力 求详细过程 企业文化 目标管理 密集型发展战略 差异化战略 情景模拟 公平理论 沟通 面料染色时因数量少而产生的小缸费,英语怎么说? 物体A重GA=40N,物体B重GB=20N,A与B,B与地的动摩擦因数相同,用水平绳将物体A系在竖直墙壁上,水平力F向右拉物体B,当F=30N时,才能将B匀速拉出.求接触面间的动摩擦因数? 甲乙两正方体金属块,边长比为1:2,质量比为2:9,则他们的密度比为多少? 正方体金属块的边长为8厘米,放在面积为1平方分米的水平木板上,金属块对木板的压强为2352帕,求该金属的密度 建筑名词解释水泥基?素砼(素混凝土),难道还有不是素的?表面斩荒包?是斩得凹凸不平还是斩平?5@150 钢筋符号:怎么读这个句子镂空花板,镂空是什么?整打?铸铁水鼻子?挡墙?挡土墙?打锚杆? 甲乙两正方体金属块,边长比为1:3,质量比为2:9,则他们的密度比为多少?急求,明天上学啊怎么做,求解,物理高手帮帮忙啊 边长是8厘米的正方体金属块放在面积为100平方厘米的水平木板中央,金属块对木板产 建筑物的定位 急用啊 有三个同种金属制成得实心正方体,他们边长的比是1:2:4,则他们的质量比和密度比要快啊 如图14,小明在探究“二力平衡的条件”的实验中,他将物体M放在光滑水平桌面上,两边用细线通过滑轮与吊盘相连(吊盘重、细线重、滑轮与轴间摩擦不计).若在左右两盘中均放重为10N的砝码 [急]!建筑空间的名词解释! 为了研究金属的性质,老师组织同学们进入实验去进行活动探究.在实验中,小王同学用5.为了研究金属的性质,老师组织同学们进入实验室去进行活动探究.在实验中,小王同学用大小、外形均相 小华同学在探究“二力平衡的条件”时,选用了一个木块、两滑轮、一些砝码、细线及普通桌面,整个实验装置如图所示,他已经知道了物体在平衡力作用下可保持静止状态或匀速直线运动状态, 建筑课程名词解释解释下列名词1、等高距;2、相对高程;3、水平面;4、测量学;5、比例尺精度. 九下化学p30页 金属与合金的性质比较 实验探究1、观察铝片与铝合金、铜片与黄铜片、锡片与焊锡的颜色与光泽2、将铝片与铝合金、铜片与黄铜片、锡片与焊锡两两互相刻画,比较他们的硬 在某电场中的P点,放一带电量q1=-3.0×10-10C的检验电荷,测得该电荷受到的电场力大小为F1=6.0×10-7N,方在某电场中的P点,放一带电量q1=-3.0×10-10C的检验电荷,测得该电荷受到的电场力大小为F1=6.0 建筑测量名词解释请尽量使用准确含义,如有可能 再请解释一个通俗易懂的版本工程管理、导线计算、放样计算、水准计算、辅助计算、限差.这几种测量方式 分别是用什么什么仪器或者工具 场强,电场力,电荷量,电势能,电势差,电势,电场力做功其中计算标量时各标量带正负号,计算矢量时各标量用绝对值吗 在某电场中的P点,放一带电量q1=-3.0×10-10C的检验电荷,测得该电荷受到的电场力大小为F1=6.0×10-7N,方向水平向右.求:(1)P点的场强大小和方向(2)在P点放一带电量为q2=1.0×10-10C的检验电荷,求 定比分点公式中的λ怎么求? 企业文化包含那三个层面的文化? 金属钠和水(含几滴酚酞)的反应是一个重要的实验,能从该实验获得的信息中说明金属钠具有的性质是:1密度金属钠和水(含几滴酚酞)的反应是一个重要的实验,能从该实验获得的信息 定比分点坐标公式是什么?RT 名词解释里人气宝贝位置已经被调整到单维度排序位置是什么意思呢?第一天上课问个问题哈.名词解释5里人气宝贝位置已经被调整到单维度排序位置是什么意思呢? 某同学探究金属化学性质的实验,a中有铁和稀硫酸,b中有铜和稀硫酸,c中有镁和稀硫酸,d中有铁和硫酸铜溶液,e中有锌和硫酸铜溶液.f中有硝酸银溶液1.上述实验中有气泡产生的d的现象2.上述实 高中数学上有没有个叫定比分点公式?高中中有哪些重要的公式, (解答题)简述企业文化的结构层面? “在感应起电的过程中,金属中的正、负电荷向相反的方向移动”为什么是错的? 以知成年人血液每20/ml的质量是21g,则密度是______,某人献血200g,则这些血的体积是_____ml 晶格能大小氟化钠,氯化钠溴化钠碘化钠 ▁▂▃▄▅▆▇█在一个点电荷电场中,把电量为1.0×10-9C的带正电的检验电荷.在一个点电荷电场中,把电量为1.0×10-9C的带正电的检验电荷,从极远处移到电场中P点,电场力做功1.8×10-7J,则检验电 【急】一道初二关于密度物理题,最好能有完整的解答说明过程在测定“液体密度”的实验中,用调节好的天平称液体的质量,往烧杯中倒入液体,称出烧杯和液体的总质量为70.0g,把烧杯中一部分 将金属钠放入水中有什么反应 克拉和克怎么转换? 向量P1P2的定比分点坐标公式P分有向线段P1P2的比为λ,P(x,y)P1(x1,y1)P2(x2,y2),则_______________定比分点公式的向量表达式:对任一点M,MP=(MP1+λMP2)/(1+λ) Nacl+MgO生成什么?反映条件是什么?有没有沉淀上升箭头?要配平!要把方程式写出来!我要复制,有大用! 钻石的单位克拉怎么和克换算? 向量定比分点公式的向量式证明公式 金属钠在水中的溶解度是多少呀? 克拉的换算单位 一个中性实心金属球外放一个点电荷,求其电势,为何用场强定义算不出正解? 推动企业文化是什么意思 克拉是什么单位?怎么换算呀? 一个不带电金属球外有一+q点电荷,去无穷远为零电势,求金属球电势.将金属球接地,求其所带电荷?场强都不是球面分布了. 一个10-5C的电荷从电场外移到电场内一点A,外力克服电场力做功0.006J,则A点电势为多少?如果此电荷从电场外移到电场内另一点B时,电场力做功是0.002J,则AB两点间电势差UAB为多少?如果有另一个 晶格能与熔点有什么关系?为什么?熔化是离子化合物变成离子吗?我不知道为什么晶格能越负,熔点越高 克拉是重量单位吗? 如图,在点电荷Q产生的电场中,将两个带正电的检验电荷q1,q2分别置于A、B两点,虚线为等势线.取无穷远处为零电势点,若将q1,q2移动到无穷远处的过程中电场力做正功且相等,则正确的是( )A.q1 由于小车与桌面之间存在着摩擦力,因此实验中,应该让小车处于____状态 将电量为q的电荷放在电场中的A点,它手到的电场力为F,则A点的电场强度的大小等于什么将电量为q的电荷放在电场中的A点,它手到的电场力为F,则A点的电场强度的大小等于( )A:q/FB: F/qC: qD:
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘