如何将图片转化为文本来呈现该图象?最好给段代码!在线等待。。。。。。

APP开发王 2005-08-21 03:34:27
如何将图片转化为文本来呈现该图象?最好给段代码!在线等待。。。。。。


我在网上看见有个人推荐一个能把图象转换为TXT,或者HTML的软件,不知道我
如何做到
参考:
http://www.blogjava.net/Blake/archive/2005/07/06/7209.aspx
...全文
316 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ccghghgj 2005-08-22
  • 打赏
  • 举报
回复

上面给的代码颜色处理上有些问题。 这里好的多。
大图片最好先生成缩略图以后再处理,
这里处理的 77*42 图片(2.4KB大小)的html有92KB

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

Dim StrImg As String = "1.gif"
Dim Img As Bitmap
Dim Sb As System.Text.StringBuilder
Dim Sw As IO.StreamWriter
Try
Img = Bitmap.FromFile(StrImg)
Sb = New System.Text.StringBuilder
Sb.Append("<html><head><title>Img2Txt</title></head><body style=""font-size: 6pt""><meta http-equiv=""Content-Type"" content=""text/html; charset=gb2312"">" & vbCrLf)

For h As Integer = 0 To Img.Height - 1
For w As Integer = 0 To Img.Width - 1
Dim c As Color = Img.GetPixel(w, h)
Sb.Append("<font color=#" & int2Hex(c.R) & int2Hex(c.G) & int2Hex(c.B) & ">图</font>")
Next
Sb.Append("<br>" & vbCrLf)
Next
Sb.Append("</body></html>")

Sw = New IO.StreamWriter("1.htm", False, System.Text.Encoding.GetEncoding("Gb2312"))
Sw.Write(Sb.ToString)

Catch ex As Exception
MsgBox("看起来不是图片。。")
Finally
Img.Dispose()
If Not Sw Is Nothing Then
Sw.Close()
End If
End Try

End Sub
Function int2Hex(ByVal Int As Int32) As String
Return System.Convert.ToString(Int, 16)
End Function

===============================
CSDN小助手 是一款脱离浏览器也可以使用csdn论坛的
软件!
界面: http://qqwwee.com/
下载: http://qqwwee.com/csdn.rar 包含源代码
ccghghgj 2005-08-22
  • 打赏
  • 举报
回复
Dim StrImg As String = "1.gif"
Dim Img As Bitmap
Dim Sb As System.Text.StringBuilder
Dim Sw As IO.StreamWriter
Try
Img = Bitmap.FromFile(StrImg)
Sb = New System.Text.StringBuilder
Sb.Append("<html><head><title>Img2Txt</title></head><body style=""font-size: 6pt"">" & vbCrLf)

For h As Integer = 0 To Img.Height - 1
For w As Integer = 0 To Img.Width - 1
Sb.Append("<font color=#" & System.Convert.ToString(Img.GetPixel(w, h).ToArgb, 16).Substring(0, 6) & ">图</font>")
Next
Sb.Append("<br>" & vbCrLf)
Next
Sb.Append("</body></html>")

Sw = New IO.StreamWriter("1.htm", False, System.Text.Encoding.Default)
Sw.Write(Sb.ToString)

Catch ex As Exception
MsgBox("看起来不是图片。。")
Finally
Img.Dispose()
If Not Sw Is Nothing Then
Sw.Close()
End If
End Try
================================================
每个点用相同颜色的字代替。。
生成的文件很庞大,几乎没有什么意义。
实在想玩的话,考虑压缩方法,看看怎么样生成的html最小!

===============================
CSDN小助手 是一款脱离浏览器也可以使用csdn论坛的
软件!
界面: http://qqwwee.com/
下载: http://qqwwee.com/csdn.rar 包含源代码
APP开发王 2005-08-22
  • 打赏
  • 举报
回复
谢谢各位了
哈哈,不错
sx_lxh 2005-08-22
  • 打赏
  • 举报
回复
4.设置字符数组每一字符的前景色为第一数组对应点的颜色。
sx_lxh 2005-08-22
  • 打赏
  • 举报
回复
思路这样行不?
1.将图片缩小
2.缩小图片每一点的颜色信息保存在二维数组中。
3.定义另外一个二维数组用来存放字符,
4.设置字符数组的前景色为第一数组点的颜色。
5.以二维显示字符数组
sz_lgp 2005-08-22
  • 打赏
  • 举报
回复
up
wqdzgh 2005-08-22
  • 打赏
  • 举报
回复
楼主问的是图象区域内色彩平均值的算法吧?
ccghghgj 2005-08-22
  • 打赏
  • 举报
回复
这个比较好玩
今天是上午花了一点时间在做个一个完整点的出来了,大图片先缩小再处理,格式也换曾gif了,颜色做了索引,这样生成后的代码小很多了
图片:http://blog.csdn.net/images/blog_csdn_net/Qqwwee_Com/1(2).gif
效果:http://blog.csdn.net/images/blog_csdn_net/Qqwwee_Com/3.html
放在 我的blog里面,包含源代码。
http://blog.csdn.net/qqwweee_com

===============================
CSDN小助手 是一款脱离浏览器也可以使用csdn论坛的
软件!
界面: http://qqwwee.com/
下载: http://qqwwee.com/csdn.rar 包含源代码
APP开发王 2005-08-21
  • 打赏
  • 举报
回复
请知道的顶一下


APP开发王 2005-08-21
  • 打赏
  • 举报
回复
楼上的大概没听清楚我说的啊,

我是要将图片转化为文本来呈现该图象

看:

http://www.blogjava.net/Blake/archive/2005/07/06/7209.aspx


我大概知道要取出图片的象数
在对应的位置用一个或多个“文字”替换
只是不找到如何设置对应的颜色




ccghghgj 2005-08-21
  • 打赏
  • 举报
回复
下面是我的一个fileAnyWhere的源代码。
把文件转化成类,不过编译以后比用资源的方法嵌入程序体积要大的多,偶尔用下很简单的。

Dim Filename As String = "c:\1.gif"
Dim fs As New IO.FileStream(Filename, IO.FileMode.Open)
Dim Sr As New IO.BinaryReader(fs)

Dim IntLen As Int32 = fs.Length
Dim IntPar As Int32 = Math.Ceiling(IntLen / 256)
Dim IntRead As Int32 = 0
Dim Sb As New System.Text.StringBuilder
Sb.Append("'FileAnyWhere V1.0" & vbCrLf)
Sb.Append("'By inlove" & vbCrLf)
Sb.Append("'Qq:1982426 Email:1982426@qq.com" & vbCrLf)
Sb.Append("'" & Now & vbCrLf)
Sb.Append("'" & Filename & vbCrLf)
Filename = Filename.Substring(Filename.LastIndexOf("\") + 1)
Filename = Filename.Replace(".", "_")
Filename = Filename.Replace("{", "_")
Filename = Filename.Replace("}", "_")
Filename = Filename.Replace("(", "_")
Filename = Filename.Replace(")", "_")
'
Sb.Append("Namespace Res" & vbCrLf)
Sb.Append("Public Class C_" & Filename & vbCrLf)
Sb.Append("#Region ""数据""" & vbCrLf)
For i As Integer = 0 To IntPar - 1
Sb.Append(" Private Shared part" & i & " As Byte() = New Byte() {")
For ii As Integer = 0 To 255

Sb.Append(Sr.ReadByte & ",")
Dim intYU As Int32
Math.DivRem(ii + 16, 16, intYU)
If intYU = 15 Then
Sb.Append(" _ " & vbCrLf & " ")
End If
IntRead += 1
If IntRead = IntLen Then
Exit For
End If
Next
Sb.Append("0}" & vbCrLf)
Next
Sb.Append("#End Region" & vbCrLf)
Sb.Append(" Public Shared ReadOnly Property MyfileStream() As IO.Stream" & vbCrLf)
Sb.Append(" Get" & vbCrLf)
Sb.Append(" Dim s As New IO.MemoryStream" & vbCrLf)
Sb.Append(" Dim Sw As New IO.BinaryWriter(s)" & vbCrLf)
For I As Integer = 0 To IntPar - 1
Sb.Append(" Sw.Write(part" & i & ", 0, part" & i & ".Length - 1)" & vbCrLf)
Next
Sb.Append(" Return s" & vbCrLf)
Sb.Append(" End Get" & vbCrLf)
Sb.Append(" End Property" & vbCrLf)
Sb.Append("End Class" & vbCrLf)
Sb.Append("End Namespace" & vbCrLf)

Me.TextBox1.Text = Sb.ToString '这里就转化成字符串了
fs.Close()
Sr.Close()

===============================
CSDN小助手 是一款脱离浏览器也可以使用csdn论坛的
软件!
界面: http://qqwwee.com/
下载: http://qqwwee.com/csdn.rar 包含源代码

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧