现在的位置: 首页 > 综合 > 正文

将图像转成HTML文件,VB.net源代码

2011年08月02日 ⁄ 综合 ⁄ 共 2715字 ⁄ 字号 评论关闭
上次发过一个软件,见下文
http://www.cnblogs.com/aowind/archive/2005/03/05/113429.html
其软件的功能就是将一个图像转成HTML文件,就是用一些自定义的数字通过不同的色彩来表现出这个图像
其效果如下:
code.gif

经过小弟研究了一下,在vb.net中写出了相同实现功能的代码
功能实现主要是应用到system.drawing.bitmap,和其方法getpixel()
主要代码如下:

Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles Button1.Click
        
Dim bit As System.Drawing.Bitmap
        bit 
= bit.FromFile("c:\aowindme.bmp"'读取一个图像文件
        Dim w, h As Integer
        w 
= bit.Width - 1 '取得图像每行的像素量
        h = bit.Height - 1 '取得图像的行数
        Dim pixel As System.Drawing.Color(,) '定义一个类型为系统色彩型的二维数组,来存放图片的所有像系的色彩信息
        pixel = New System.Drawing.Color(w, h) {} '根据图像的像系每行数量和行量来重新定义数组下标
        Dim i, j
        
'利用循环把图像所有像素的色彩信息对应存入数组
        For i = 0 To h
            
For j = 0 To w
                pixel(j, i) 
= bit.GetPixel(j, i)
            
Next
        
Next
        
Dim content As String '定义一个字符串来存放要写入html的内容
        content = toweb(w, h, pixel) '生成写入html的内容
        Dim y As Boolean '定义一个逻辑变量来判断是否写入成功
        y = SaveTextFile("c:\999.htm", content) '写入html文件
        If y Then MsgBox("ok!")
    
End Sub


    
'得到一个RGB信息的相应WEB代码
    Private Function GetWEBColorinfo(ByVal x As Color) As String
        
Dim r, g, b As String
        r 
= Hex(CInt(x.R)) '取得一个像素色彩信息中的R信息,转成16进制后存成字符串型
        g = Hex(CInt(x.G)) '取得一个像素色彩信息中的R信息,转成16进制后存成字符串型
        b = Hex(CInt(x.B)) '取得一个像素色彩信息中的R信息,转成16进制后存成字符串型
        '如果不足两位的在前面加0,因为WEB色彩表示应为#+R(两位16进制)+G(两位16进制)+B(两位16进制)
        If r.Length = 1 Then r = "0" & r
        
If g.Length = 1 Then g = "0" & g
        
If b.Length = 1 Then b = "0" & b
        
Return "#" & r & g & b
    
End Function


    
'生成要写处html文件的字符串,即html文件的内容
    Private Function toweb(ByVal w As IntegerByVal h As IntegerByVal pixel As Color(,)) As String
        
Dim html As String
        html 
= "<html><head><title>傲风图像网页生成</title></head><body bgcolor='#000000'><center>" & vbCrLf
        
Dim i, j
        
For i = 0 To h
            
For j = 0 To w
                html 
= html & "<font color='" & GetWEBColorinfo(pixel(j, i)) & "'>" & Int(Rnd(10* 10& Int(Rnd(10* 10& "</font>"
            Next
            html 
= html & "<br>" & vbCrLf
        
Next
        html 
= html & "</center></body></html>"
        Return html
    
End Function

    
'写入文件函数
    Private Function SaveTextFile(ByVal FilePath As StringByVal FileContent As StringAs Boolean
        
Dim sw As System.IO.StreamWriter
        
Try
            sw 
= New System.IO.StreamWriter(FilePath, False)
            sw.
Write(FileContent)
            
Return True
        
Catch e As Exception
            
Return False
        
Finally
            
If Not sw Is Nothing Then sw.Close()
        
End Try
    
End Function

还请大虾位指教!

抱歉!评论已关闭.