教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> 编程基地 >> VB >> 用VB6.0快速实现图象加柔效果 RSS订阅
用VB6.0快速实现图象加柔效果
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   
引言

  对一副图像处理后,可以得到各种各样的效果图。比如图像的锐化图、柔化图、浮雕效果图、复古效果图、彩色便笺效果图等,只要打开Photoshop,你不能不为各种各样的效果图惊叹,一副图片竟能产生出如此之多的效果。

  本文对图像处理的特殊效果之一--加柔的实现,介绍了一种简单的算法。

  图像加柔的原理

  图像加柔效果的原理其实非常简单,可以分为以下三步进行。

  第一步:对图像进行分块并选择适当的柔化算子,柔化算子决定图像加柔的效果,加柔的基本思想是某点象素的新值,由该点象素和该点象素周围的象素值共同决定。

  第二步:根据加柔算子计算每个象素的新值。

  第三步:利用新的象素值,显示图像得到效果图。

  应该特别注意:对图像边缘象素的处理。

  编程应用

  下面我们以24位真彩图"girl.bmp"为例,给出用VB 6.0编写的程序,该程序分别在window98和Windows 2000 环境中实现,取得了良好的柔化效果。

  I、建立工程:启动VB6.0|新建工程|标准EXE;
  程序代码:

  通用声明

Option Explicit
Dim imagepixels(2, 1024, 1024) As Integer 注释:用来存储读入的图像数据
Dim picturename, picture_savename As String


  I、打开文件

Private Sub open_Click()
 Dim i As Integer, j As Integer
 Dim red As Long, green As Long, blue As Long
 Dim pixel As Long
 注释: 设置"CancelError"为 True
 CommonDialog1.CancelError = True
 On Error GoTo ErrHandler 注释: 设置标志
 CommonDialog1.Flags = cdlOFNHideReadOnly 注释: 设置过滤器
 CommonDialog1.filter = "All Files (*.*)|*.*|Text Files" & _
"(*.txt)|*.txt|pictures(*.gif)|*.gif|pictures(*.bmp)|*.bmp" 注释: 指定缺省的过滤器
 CommonDialog1.FilterIndex = 4 注释: 显示"打开"对话框
 CommonDialog1.ShowOpen 注释: 显示选定文件的名字
 picturename = CommonDialog1.FileName
 If picturename = "" Then Exit Sub
 Picture1.Picture = LoadPicture(picturename)
 Picture2.Picture = Picture1.Picture
 Picture1.Refresh
 Picture2.Refresh
 Picture1.AutoSize = True
 x = Picture1.ScaleWidth
 y = Picture1.ScaleHeight
 form1.Visible = False
 For i = 0 To y - 1
  For j = 0 To x - 1
   pixel& = form1.Picture1.Point(j, i)
   red = pixel& Mod 256
   green = ((pixel& And &HFF00) / 256&) Mod 256&
   blue = (pixel& And &HFF0000) / 65536
   imagepixels(0, j, i) = red '分别存储像素点的GRB值
   imagepixels(1, j, i) = green
   imagepixels(2, j, i) = blue
  Next
 Next
 form1.Visible = True
 form1.Show
ErrHandler:
 注释: 用户按了"取消"按钮
 Exit Sub
End Sub


  II、保存文件

Private Sub save_Click()
 CommonDialog2.CancelError = True 注释: 初始化"CancelError"为 True
 On Error GoTo ErrHandler 注释: 设置标志
 CommonDialog2.Flags = cdlOFNHideReadOnly 注释: 设置过滤器
 CommonDialog2.filter = "All Files (*.*)|*.*|Text Files" & _
"(*.txt)|*.txt|pictures(*.gif)|*.gif|pictures(*.bmp)|*.bmp" 注释: 指定缺省的过滤器
 CommonDialog2.FilterIndex = 4 注释: 显示"打开"对话框
 CommonDialog2.ShowSave 注释: 显示选定文件的名字
 picture_savename = CommonDialog2.FileName
 SavePicture Picture1.Image, picture_savename
ErrHandler: 注释: 用户按了"取消"按钮
 Exit Sub
End Sub

来源:upschool.cn
作者:
关键字:
发表日期:2006-12-20 21:25:10

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:VB6.0设计真正实用的TreeView控件   下一篇:消息队列在VB.NET数据库开发中的应用


2009-1-10 10:47:26
本文的相类似文章
在学习中进步 在进步中成长 教程中国相随您的成长之路
华腾联合科技股份有限公司版权所有
广告联系:Rosibo@163.com