- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
用VB编程实现图像的熠熠生辉效果
来源:云南新华电脑学院文稿
一道炫目的闪光在图像上从左至右徐徐掠过,相信如果把这样的特效应用到程序的界面上一定能为你的程序增色不少。这样的特效到底是怎样实现的呢?让我们一起来分析一下,这是本特效在某一瞬间的截图,可以看出沿着一条倾斜的扫描线,它周围的象素都按照近强远弱(距扫描线)的规律增强亮度(当然,扫描线并不显示出来,它只是一个抽象的概念,以方便我们的编程工作)。当扫描线从图像最左端平滑地移动到图像最右端的时候,由于视觉暂留作用,看起来就会有熠熠生辉的效果。那么怎样加强像素的亮度呢?可不能直接增大像素的颜色值,因为像素的颜色值是一个长整形数值,使用4个字节表示,最高位的字节的值为0,其它3个字节依次是B、G、R值,所以要加强像素的亮度,就要分别增加B、G、R值的大小。由于这是个动态特效,静态图片很难表达清楚,读者可先运行一下代码以帮助理解。 为了使本特效更灵活、更实用,笔者定义了几个参数,可以通过参数对特效做调整以达到满意的效果。 参数表----------------------------------------------------- Angle 光照倾角,取值0到90之间,以角度为单位 WidthOfArea 光照区宽度,取值大于1的整数,以像素为单位 Speed 光照区运动速度,取值大于1的整数 EnhanceRatio 光照强度参数,取值大于1的整数 ----------------------------------------------------- 好,原理就这么多,现在我们开始动手实现吧!打开VB6.0,选择新建标准EXE工程,在主窗口form1中绘制下表中所列控件并设置窗体和各控件的属性。
生成最后的窗体。 在form1的代码编辑窗口中添加如下代码 Option Explicit Const pi = 3.1415926 api函数声明------------------------------------------------------------ Private Declare Sub CopyMemory Lib kernel32 Alias RtlMoveMemory _ (Destination As Any, Source As Any, ByVal Length As Long) 拷贝内存 Private Declare Function GetPixel Lib gdi32 (ByVal hdc As Long, _ ByVal X As Long, ByVal Y As Long) As Long 取像素值 Private Declare Function SetPixel Lib gdi32 (ByVal hdc As Long, _ ByVal X As Long, ByVal Y As Long, ByVal crColor As Long) As Long 设置像素值 Private Sub cmd1_Click() cmd1.Enabled = False MakeSpark txtA, txtW, txtS, 0, txtE, 65, 10 cmd1.Enabled = True End Sub Private Sub MakeSpark(Angle As Long, WidthOfArea As Long, _ Speed As Long, MaskColor As Long, _ EnhanceRatio As Single, OffsetX As Long, OffsetY As Long) 熠熠生辉效果 参数表----------------------------------------------------- Angle 光照倾角 WidthOfArea 光照区宽度 Speed 光照区运动速度 MaskColor 主体图的屏蔽色 EnhanceRatio 光照强度参数 OffsetX 主体图叠加到目标图时的 X 偏移 OffsetY 主体图叠加到目标图时的 Y 偏移
文档评论(0)