首页 | 新闻资讯 | 软件应用 | 图形图像 | 网络应用 | 硬件学堂 | 程序开发 | 安全中心 | 素材下载 | 作者专区 | 学院论坛
精选专题 | 精美壁纸 | 专家答疑 | Flash剧场 | Photoshop | 名词解释 | 梦幻桌面 | PS高手进阶 | QQ区 | 图书 | 黑客教材
Flash教程| 卡通制作 | AutoCAD | 3DMax实例 | PS视频教程| 网页制作 | CorelDRAW| Firework | 滤镜与实例 | 全部视频教程
当前位置:eNet硅谷动力 > 学院频道 > VB

用VB编程实现图像的熠熠生辉效果
2005-09-12 21:47 作者:论坛 来源:eNet论坛
【简 介】
一道炫目的闪光在图像上从左至右徐徐掠过,相信如果把这样的特效应用到程序的界面上一定能为你的程序增色不少。这样的特效到底是怎样实现的呢?让我们一起来分析一下,这是本特效在某一瞬间的截图,可以看出沿着一条倾斜的扫描线,它周围的象素都按照近强远弱(距扫描线)的规律增强亮度(当然,扫描线并不显示出来,它只是一个抽象的概念,以方便我们的编程工作)。当扫描线从图像最左端平滑地移动到图像最右端的时候,由于视觉暂留作用,看起来就会有熠熠生辉的效果。那么怎样加强像素的亮度呢?可不能直接增大像素的颜色值,因为像素的颜色值是一个长整形数值,使用4个字节表示,最高位的字节的值为0,其它3个字节依次是B、G、R值,所以要加强像素的亮度,就要分别增加B、G、R值的大小。由于这是个动态特效,静态图片很难表达清楚,读者可先运行一下代码以帮助理解。   
    
加入收藏  设为首页

  一道炫目的闪光在图像上从左至右徐徐掠过,相信如果把这样的特效应用到程序的界面上一定能为你的程序增色不少。这样的特效到底是怎样实现的呢?让我们一起来分析一下,这是本特效在某一瞬间的截图,可以看出沿着一条倾斜的扫描线,它周围的象素都按照近强远弱(距扫描线)的规律增强亮度(当然,扫描线并不显示出来,它只是一个抽象的概念,以方便我们的编程工作)。当扫描线从图像最左端平滑地移动到图像最右端的时候,由于视觉暂留作用,看起来就会有熠熠生辉的效果。那么怎样加强像素的亮度呢?可不能直接增大像素的颜色值,因为像素的颜色值是一个长整形数值,使用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 偏移

  

推荐文章:电眼美女林熙蕾火辣激情壁纸  少儿止步 性感壁纸欣赏


[1] [2]下一页
关键字: c  语言  c语言  c++  vc 
您对这篇文章的看法是:    喜欢 反感 支持 反对 加油 鄙视 学习 打击 佩服 漂亮 路过 发表评论
视频教程】 【专题汇总】 【不懂就问我关闭窗口

Photoshop绘制青翠欲滴的绿色植物
令人叹为观止的电影电视海报(一)
不容错过 小插件大幅减小系统负担
教你详细路由器基础中文命令集
马云新动作 淘宝将与阿里妈妈合并
焦点文章
 本栏目最新文章
·编写电话拨号程序时一点小技巧
·VB开发应用软件之写在动手之前
·用VB实现“木马”式隐形运行程序
·怎样实现在VB窗体中有Html页面
·用VB编程实现图像的熠熠生辉效果
 精彩回放
·3DSMAX打造书本翻开效果
·共享上网技巧应用四则
·陪酒女浸泡在酒里的青春
·美女的性感靓丽婚纱设计
·妖冶身姿 死或生3壁纸
·剿灭Win XP下的29个烦恼
·黑客必备 NET命令大全
·用PS制作精致绝伦的红酒
 精彩推荐
 今日软件下载
·企业级即时通信平台 腾讯通RTX
·极品时刻表含春运临时列车数据
·下载管理器 BitComet 比特彗星
·边下边看想看就看风行网络电影
·超级图文影音转换器 Konvertor
 往日推荐
·手工破解网吧多种限制
·Windows 网络管理技巧
·WMP 10使用技巧三则
·女孩问你帅不帅 要小心
·注册表优化XP 20招
·制作XP万能ghost光盘
·WMP10火拼DVD播放器
·街头霸王图片集中营
·五大搜索引擎横向评测
·防御计算机病毒十大步骤

论坛精华
·国外高手的调色合成 
·Photoshop CS3打造迷 
·PS初学者十三课,献给 
·原创:本人默哀作品 
·眼泪、五官、闪电、 
·图层蒙版中自定义形 
热点推荐
打造绚丽北极光
麻辣动态签名
Flash视频编程
章子怡月历桌面
热点关注
·SEO从入门到精通视频教程
·Photoshop数码照片处理案例
·3DSMAX室内渲染实例视频教程
·鹏哥特色教程之C#入门到精通
·Dreamwaver CS3 视频教程
·JAVA-J2ME移动开发实战教学
·爱淘课Word2007精品视频教程
·瑞星杀毒08套装免费1年
·瑞星卡卡上网助手 正版免费
Photoshop打造乒乓球男团胜利瞬间
往日推荐
打造火焰文字
鹏哥C#教程
美女怀旧照片
3D室内渲染
焦点关注