奥运倒计时: 2008 中国挺住,中国加油! 全国人民对四川汶川大地震遇难同胞的深切哀悼! 设为首页 加入收藏
点击进入太平洋安全网首页
论坛登陆 用户名: 密码:
首页 新闻资讯 文章中心 黑客资源 黑客点睛 安全防护 软件下载 动画教程 会员咨询 技术问答 论坛社区
文章 下载 图片
文章   | 电脑知识 | 网络知识 | 菜鸟入门 | 入侵教程 | 黑客攻防 | 黑客编程 | 原创精华 | 黑客人物 | 黑客技术 | 提权技术 | 跨站技术 | 渗透技术 | 鸽子专题 |
 您现在的位置: 太平洋安全网 >> 文章 >> 黑客编程 >> 正文

[推荐]VB编程实现图像的漂亮效果

VB编程实现图像的漂亮效果
作者:佚名    文章来源:本站原创    点击数:    更新时间:2007-11-10
本文讲解了如何通过VB编程实现图像的漂亮效果。
  参数表-----------------------------------------------------

  Angle 光照倾角,取值0到90之间,以角度为单位

  WidthOfArea 光照区宽度,取值大于1的整数,以像素为单位

  Speed 光照区运动速
 Form1 Name Form1

  ScaleMode 3-pixel

  PictureBox Name PicDest

  ScaleMode 3-pixel

  Picture 背景图

  PictureBox Name PicSource

  ScaleMode 3-pixel

  Picture 主体图

  Label Name LblA

  Caption 角度

  Textbox Name TxtA

  Text 30

  Label Name LblW

  Caption 宽度

  Textbox Name TxtW

  Text 15

  Label Name LblE

  Caption 强度

  Textbox Name TxtE

  Text 15

  Label Name LblS

  Caption 速度

  Textbox Name TxtS

  Text 1

  CommandButton Name Cmd1

  Caption 开始特效

  生成最后的窗体。

  在form1的代码编辑窗口中添加如下代码:
Quote:
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 偏移
  Dim i&, X&, Y&, L&, Color&, EnhanceValue&
  Dim R As Byte, G As Byte, B As Byte
  WITh picSource
  For i = 0 To .Width + .Height * Tan(Angle * pi / 180) + WidthOfArea _
  Step Speed
  ’扫描主体图
  For X = 0 To .Width - 1
  For Y = 0 To .Height - 1
  Color = GetPixel(.hdc, X, Y)
  ’遍历主体图的像素
  If Color = MaskColor Then
  ’skip跳过
  Else
  L = Abs(X - (i - Y * Tan(Angle * pi / 180)))
  ’计算当前像素于扫描线的 X 方向距离
  If L <= WidthOfArea Then ’如果当前像素在光照范围内
  R = ExtractR(Color) ’取 R,G,B 值
  G = ExtractG(Color)
  B = ExtractB(Color)
  EnhanceValue = EnhanceRatio * (WidthOfArea - L)
  ’算出要增强的亮度值
  ’加强亮度,但不能超过最大值 255
  R = IIf(R + EnhanceValue > 255, 255, R + EnhanceValue)
  G = IIf(G + EnhanceValue > 255, 255, G + EnhanceValue)
  B = IIf(B + EnhanceValue > 255, 255, B + EnhanceValue)
  Color = RGB(R, G, B) ’算出加强亮度后的颜色值
  End If
  SetPixel picDest.hdc, X + OffsetX, Y + OffsetY, Color
  ’拷贝像素到目标图
  End If
  Next Y
  Next X
  picDest.Refresh ’一帧已处理完,显示
  DoEvents
  Next i
  End WITh
  End Sub
  Private Function ExtractR(Col As Long) As Byte
  ’提取一个颜色值的红色分量值,红色分量位于这个颜色值的最低字节
  Dim tmp As Byte
  CopyMemory tmp, ByVal VarPtr(Col), 1
  ExtractR = tmp
  End Function
  Private Function ExtractG(Col As Long) As Byte
  ’提取一个颜色值的绿色分量值,绿色分量的位置比红色分量高一字节
  Dim tmp As Byte
  CopyMemory tmp, ByVal VarPtr(Col) + 1, 1
  ExtractG = tmp
  End Function
  Private Function ExtractB(Col As Long) As Byte
  ’提取一个颜色值的蓝色分量值,蓝色分量的位置比绿色分量高一字节
  Dim tmp As Byte
  CopyMemory tmp, ByVal VarPtr(Col) + 2, 1
  ExtractB = tmp
  End Function

文章录入:ainiver    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     推荐文章
    推荐文章一句话木马用Upfile.vbs脚本
    推荐文章软件破解教程-第6章第3节 加密算法5
    推荐文章软件破解教程-第6章第3节 加密算法4
    推荐文章软件破解教程-第6章第3节 加密算法3
    推荐文章Visual C++编程窃取QQ密码(图)
    推荐文章软件破解教程-常用Win32 API函数简介
    推荐文章VB编程实现图像的漂亮效果
    推荐文章输入10进制,输出2进制
     热门文章
    推荐文章软件破解教程-第6章第3节 加密算法3
    推荐文章Visual C++编程窃取QQ密码(图)
    推荐文章VB编程实现图像的漂亮效果
    推荐文章输入10进制,输出2进制
    推荐文章详解Visual C#数据库编程
    推荐文章入侵渗透中用过的三则VBS代码
    推荐文章入侵渗透中用过的三则VBS代码
    推荐文章网站防止注入入侵的一些有效代码和方法
     本站推荐

    关于我们 | 联系方法 | 招聘信息 | 加入会员 | 诚征代理 | 广告服务 | 欢迎投稿 | 站长信箱 | 友情链接 | 网站地图
    24小时客服:0374-7126138 技术支持:0374-7126138 投诉电话:0374-7967536
    客服QQ:883039 售后QQ:827520 技术QQ:78305152 投稿-商业:576880739
    Copyright 太平洋科技 2003-2007 版权所有 All Rights Reserved
    许可证号:豫ICP备07005385号