|
<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/> For ix = 0 To pic1.ScaleWidth - 1<br/> Call GetRGB(GetPixel(pic1.hDC, ix, iy), R, G, B)<br/> If G <= m_G Then<br/> pix(ix, iy) = True<br/> Else<br/> pix(ix, iy) = False<br/> End If<br/> Next<br/>Next<br/>'--------------------------------取字1<br/>x = GetFontStartX(pix(), 0)<br/>x1 = GetFontEndX(pix(), x)<br/>If (x1 - x) > 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 & GetNum(pix(), x1, y1, x, y)<br/></font><font face="Verdana">End Function</font></font></p>
<p><font face="Verdana"></font> </p>
<p><font face="Verdana"></font> </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/> A = CByte((Color And &HFF000000) / 2 ^ (8 * 3))<br/> R = CByte((Color And &HFF) / 2 ^ (8 * 0))<br/> G = CByte(((Color And &HFF00) / 2 ^ (8 * 1)) And &HFF)<br/> B = CByte((Color And &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/> For ix = sX To UBound(pix(), 1)<br/> For iy = 0 To UBound(pix(), 2)<br/> If pix(ix, iy) Then<br/> GetFontStartX = ix<br/> Exit Function<br/> End If<br/> Next<br/> Next<br/>End Function</font></p>
<p> </p>
<p><font face="Verdana">Private Function GetNum(pix() As Boolean, x, y, x1, y1) As String<br/> Dim s As String<br/> Dim ix As Long<br/> Dim iy As Long<br/> For iy = y1 To y - 1<br/> For ix = x1 To x - 1<br/> s = s & Abs(CInt(pix(ix, iy)))<br/> Next<br/> Next<br/> <br/> GetNum = GetPixModNum(s)<br/>End Function</font><br/></p>
<p> </p>
<p>
<p><font face="Verdana"></font></p></p>
<p> </p>
<p> </p>
<p>就这句,其中getcode表示什么意思?我就这句不明白了,谢谢老马~~~~</p>
<p><font face="Verdana" color="#ff0000">GetCode = GetCode & GetNum(pix(), x1, y1, x, y)</font></p>
<p> </p></font>
[此贴子已经被作者于2009-5-12 0:45:51编辑过] |
|