中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > .NET > 临时文章
用vb.net实现图片颜色替换-让图片得“病”
作者:张悦 时间:2006-09-30 13:16 出处:ccidnet.com 责编:月夜寒箫
              摘要:用vb.net实现图片颜色替换-让图片得“病”
看了这个标题你是否会觉得很怪异!其实一点也不要感到惊讶,为什么呢?因为我有切身感受。

  前几天我到朋友家品茶,听见朋友在抱怨,他说:"我保存在电脑中的图片全部被改了,图片中的红色全部都被其他的颜色所替换,而且还在图片上加上了很多英文字,我最近并没有使用过图片修改软件,真是倒霉!"。听了朋友的抱怨后,我感到这肯定是一种新的病毒,但朋友说他用了很多杀毒软件,都没有查到这种病毒。到了这种地步我只好一边安慰他一边帮他重装系统。

  回去后我仔细的思考这种病毒的运行原理,最后用vb.net模拟出了这种病毒。

  其实这种病毒的原理很简单;就是以时间为条件,在不同的时间用不同的颜色替换红色。并且用线条画出英文字母。将改动后的图片保存为另一个文件,把原来的图片删除,将新图片的名字改为原来的文件名字进行保存。

  下面是用vb.net模拟出来的代码:

(在调试此程序是请先准备一幅用红色的图片)

              

                  图片1

Private Sub Button1_Click(ByVal sender As System.Object,
            ByVal e As System.EventArgs) Handles Button1.Click
            Dim filename As String
            filename = "F:\Documents and Settings\Administrator\My Documents\red.bmp"
                  '这是我的图片文件地址,你可以改为其它地址或文件。
            Dim bmp As New Bitmap("F:\Documents and Settings\Administrator\My Documents\red.bmp")
                  '用一个图片实例化bitmap对象
            Dim bmpheght As Integer
            Dim bmpw As Integer
            Dim i, k As Integer
            Dim cloAs
            bmpheght = CType(bmp.Height, Integer)'获得图片的高
            bmpw = CType(bmp.Width, Integer)'获得图片的宽
            Label1.Text = bmpheght'显示图片的高
            Button1.Text = bmpw'显示图片的宽
            For i = 0 To bmpw - 1
            For k = 0 To bmpheght - 1
            cloAs = bmp.GetPixel(i, k).Name.ToString
                        '获得象素点的颜色,返回颜色的16制代码
            If cloAs = "ffff0000" Then'ffff0000
                         '是红色的16制代码,对于其他的颜色代码请见msdn。
            bmp.SetPixel(i, k, System.Drawing.Color.Blue)
                        '用蓝色替换红色
            End If
            Next
            Next
            Dim nfilename As String
            nfilename = "F:\Documents and Settings\Administrator\My Documents\red1.bmp"
            bmp.Save(nfilename) '将改变后的文件保存为一个新文件
            bmp.Dispose()'释放bitmap对象
            IO.File.Delete(filename)'删除原来的文件
            Dim newbmp As New Bitmap(nfilename)
            newbmp.Save(filename)'将新文件改名为原来的文件
            newbmp.Dispose()
            IO.File.Delete(nfilename)'删除新文件
            Debug.WriteLine("end")
            End Sub

                 

                  图片2-处理后效果

  这段代码的功能是用蓝色替换图片中的红色,因为这只是一篇技术探讨文章,所以对于在图片中加入英文字功能和以时间为条件用不同颜色替换红色的时间功能做了保留。如果读者有兴趣,可以自己研究,这两项功能并不复杂。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有