电信主站 网通分站
购买流程 付款方式 常见问题 在线提问 续租服务 购物车
用户名: 密 码: 忘记密码?
首 页
域名注册
虚拟主机
双线主机
服务器租用
VPS主机
企业邮局
代理专区
客服中心
虚拟主机行业资讯 虚拟主机评测对比 互联网最新动态 技术学院 站长资讯 在线教程 网站运营
搜索优化 服务器 网络编程 图形图象 站长之家 网页制作 操作系统
冲浪宝典 软件教学 视频通信 办公软件 邮件系统 网络安全 认证考试
您当前位置:西部数码->资讯中心-> 网络编程 -> 移动开发教程
在vb中实现位图的透明放置_visualbasic教程
作者:网友供稿 点击:0
  西部数码-全国虚拟主机10强!20余项虚拟主机管理功能,全国领先!第6代双线路虚拟主机,南北访问畅通无阻!虚拟主机可在线rar解压,自动数据恢复设置虚拟目录等.虚拟主机免费赠送访问统计,企业邮局.Cn域名注册10元/年,自助建站480元起,免费试用7天,满意再付款!P4主机租用799元/月.月付免压金!
文章页数:[1] 
我们在开发一个软件中,通过扫描仪输进了大量实景图片,这些图片是以位图格式存储的,实际需要将这些图片透明放置到多彩色背景上,而在我们所使用的VisualBasicforWindows开发环境中,只能将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上。
程序清单如下:
1Constsrccopy=&HCC0020
2Constsrcinvert=&H660046
3Constsrcpaint=&HEE0086
4SubCommand1Click()
5black=RGB(0,0,0)
6white=RGB(255,255,255)
7position=0拷贝piccel到picmatte上
8r=bitblt(ByValpicmatte.hDC,ByVal0,ByVal0,ByValpiccel.width,ByValpiccel.Height,ByValpiccel.hDC,ByVal0,ByVal0,ByValsrccopy)
9Forscanline=0To(piccel.Height-1)
10Do‘取得picmatte上坐标为(position,scanline)点的颜色
11currentcolor=getpixel(picmatte.hDC,position,scanline)
12Ifcurrentcolor<>blackThen‘如果该点不为黑色,则置为白色
13retlong=setpixel(picmatte.hDC,position,scanline,white)
14EndIf
15position=position 1
16LoopWhileposition<piccel.Width
17position=0
18Nextscanline‘创建原位图piccel的反相图象
19r=bitblt(ByValpiccel.hDC,ByVal0,ByVal0,ByValpiccel.Width,ByValpiccel.Height,ByValpicmatte.hDC,ByVal0,ByVal0,srcinvert)
20r=bitblt(ByValbkgrd.hDC,ByVal10,ByVal10,ByValpiccel.Width-1,ByValpiccel.Height-1,ByValpicmatte.hDC,ByVal0,ByVal0,srcpaint)
21r=bitblt(ByValbkgrd.hDC,ByVal10,ByVal10,ByValpiccel.Width-1,ByValpiccel.Height-1,ByValpiccel.hDC,ByVal0,ByVal0,ByValsrcinvert)
22EndSub
23SubCommand2-Click()
24End
25EndSub
26SubForm-Load()
27picmatte.Width=piccel.Width
28picmatte.Height=piccel.Height
29EndSub->


文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!
相关主题
文章页数:[1] 
Google
热门文章
·移动业务代码规范方案_移动短信技术
·midi文件结构分析及生成方法_移动短信技术
·ems图片格式转换(java)程序_移动短信技术
·图片格式整理(增加alcatel)_移动短信技术
·手机铃声格式规范,midi格式规范_移动短信技术
·一个偏门:固话短信的信息格式约定_移动短信技术
·cmpp connect code sample_移动短信技术
·cmpp的submit 包的code sample_移动短信技术
·cmpp active test_移动短信技术
·空中下载技术的特点及其实现方式_移动短信技术

最新文章
·用vb.net 2005编写定时关机程序_vb/vb.net教程
·中文版windows xp系统升级sp3新鲜体验_windows xp
·解决优化后windowsxp不能自动更新的问题_windows xp
·photoshop制作时尚乞丐牛仔面料效果_photoshop教程
·windows mobile开发环境搭建指南_移动短信技术
·photoshop快速打造莹蓝冰窟特效_photoshop教程
·photoshop处理特效:照片中的照片_photoshop教程
·让windows xp自动维护系统_windows xp
·fireworks为枝繁叶茂的树木图片抠底_fireworks教程
·用photoshop给汽车喷漆换色_photoshop教程


 
 


版权申明:本站文章均来自网络,如有侵权,请联系我们,我们收到后立即删除,谢谢!

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有。
  打印  刷新  关闭
返回首页 |关于我们 | 联系我们 | 付款方式 | 创业联盟 | 虚拟主机 | 资讯中心 | 友情链接 | 网站地图

版权所有 西部数码(www.west263.com)
CopyRight (c) 2002~2006 west263.com all right reserved.
公司地址:四川成都市万和路90号天象大厦4楼 邮编:610031
电话总机:028-86262244 86263048 86263408 86263960 86264018 86267838
售前咨询:总机转201 202 203 204 206 208
售后服务:总机转211 212 213 214
财务咨询:总机转224 223 传真:028-86264041 财务QQ:点击发送消息给对方635483282
售前咨询QQ:点击发送消息给对方2182518 点击发送消息给对方241975952 点击发送消息给对方275026793 点击发送消息给对方408235859
售后服务QQ:点击发送消息给对方17708515 点击发送消息给对方307742704 点击发送消息给对方287976517 点击发送消息给对方363783715
《中华人民共和国增值电信业务经营许可证》编号:川B2-20030065号