找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 4534|回复: 2

【求助】老马,你看看这个代码呗

[复制链接]

90

主题

473

回帖

2

精华

钻石会员

积分
3261
发表于 2009-5-12 00:43:33 | 显示全部楼层 |阅读模式
<p><font face="Verdana">Option Explicit<br/>Private Declare Function GetPixel Lib "gdi32" (ByVal hDC As Long, ByVal x As Long, ByVal y As Long) As Long<br/>Private m_G As Byte</font></p>
<p><font face="Verdana">Public Function GetCode(pic1 As PictureBox) As String<br/>Dim R As Byte<br/>Dim G As Byte<br/>Dim B As Byte</font></p>
<p><font face="Verdana">Dim x As Long '起点坐标X<br/>Dim y As Long '起点坐标Y<br/>Dim x1 As Long '终点坐标X<br/>Dim y1 As Long '终点坐标y</font></p>
<p><font face="Verdana">Dim iy As Long '高变量<br/>Dim ix As Long '宽变量</font></p>
<p><font face="Verdana">Dim pix() As Boolean '存放所有象素<br/>ReDim pix(pic1.ScaleWidth - 1, pic1.ScaleHeight - 1) As Boolean '重定义数组</font></p>
<p><font face="Verdana">'二值化图片<br/>For iy = 0 To pic1.ScaleHeight - 1<br/>&nbsp;&nbsp;&nbsp; For ix = 0 To pic1.ScaleWidth - 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Call GetRGB(GetPixel(pic1.hDC, ix, iy), R, G, B)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If G &lt;= m_G Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pix(ix, iy) = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pix(ix, iy) = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp; Next<br/>Next<br/>'--------------------------------取字1<br/>x = GetFontStartX(pix(), 0)<br/>x1 = GetFontEndX(pix(), x)<br/>If (x1 - x) &gt; 15 Then x1 = x + 12<br/>y = GetFontStartY(pix(), 0, x, x1)<br/>y1 = GetFontEndY(pix(), y, x, x1)<br/><font color="#ff0000">GetCode = GetCode &amp; GetNum(pix(), x1, y1, x, y)<br/></font><font face="Verdana">End Function</font></font></p>
<p><font face="Verdana"></font>&nbsp;</p>
<p><font face="Verdana"></font>&nbsp;</p>
<p><font face="Verdana"><font face="Verdana">Private Sub GetRGB(ByVal Color As Long, ByRef R As Byte, ByRef G As Byte, ByRef B As Byte, Optional ByRef A As Byte)<br/>&nbsp;&nbsp;&nbsp; A = CByte((Color And &amp;HFF000000) / 2 ^ (8 * 3))<br/>&nbsp;&nbsp;&nbsp; R = CByte((Color And &amp;HFF) / 2 ^ (8 * 0))<br/>&nbsp;&nbsp;&nbsp; G = CByte(((Color And &amp;HFF00) / 2 ^ (8 * 1)) And &amp;HFF)<br/>&nbsp;&nbsp;&nbsp; B = CByte((Color And &amp;HFF0000) / 2 ^ (8 * 2))<br/>End Sub</font></p>
<p><font face="Verdana">'取起点X坐标<br/>Private Function GetFontStartX(ByRef pix() As Boolean, ByRef sX As Long) As Long<br/>Dim ix As Long<br/>Dim iy As Long<br/>&nbsp;&nbsp;&nbsp; For ix = sX To UBound(pix(), 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For iy = 0 To UBound(pix(), 2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; If pix(ix, iy) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetFontStartX = ix<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next<br/>&nbsp;&nbsp;&nbsp; Next<br/>End Function</font></p>
<p>&nbsp;</p>
<p><font face="Verdana">Private Function GetNum(pix() As Boolean, x, y, x1, y1) As String<br/>&nbsp;&nbsp;&nbsp; Dim s As String<br/>&nbsp;&nbsp;&nbsp; Dim ix As Long<br/>&nbsp;&nbsp;&nbsp; Dim iy As Long<br/>&nbsp;&nbsp;&nbsp; For iy = y1 To y - 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; For ix = x1 To x - 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; s = s &amp; Abs(CInt(pix(ix, iy)))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Next<br/>&nbsp;&nbsp;&nbsp; Next<br/>&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp; GetNum = GetPixModNum(s)<br/>End Function</font><br/></p>
<p>&nbsp;</p>
<p>
<p><font face="Verdana"></font></p></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>就这句,其中getcode表示什么意思?我就这句不明白了,谢谢老马~~~~</p>
<p><font face="Verdana" color="#ff0000">GetCode = GetCode &amp; GetNum(pix(), x1, y1, x, y)</font></p>
<p>&nbsp;</p></font>
[此贴子已经被作者于2009-5-12 0:45:51编辑过]

275

主题

3017

回帖

1

精华

管理员

嗷嗷叫的老马

积分
17064

论坛牛人贡献奖关注奖最佳版主进步奖人气王疯狂作品奖精英奖赞助论坛勋章乐于助人勋章

QQ
发表于 2009-5-12 12:24:10 | 显示全部楼层
<p>这代码我咋觉得有点眼熟.........</p>
<p>&nbsp;</p>
<p>用法上,好象没在前面哪里发现使用了GetCode变量,因此我认为这句不需要连接GetCode.</p>
我就是嗷嗷叫的老马了......

90

主题

473

回帖

2

精华

钻石会员

积分
3261
 楼主| 发表于 2009-5-13 22:45:36 | 显示全部楼层
<p>老马,谢谢你</p>
<p>3q</p>
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表