这是我写的一段对比两张图片是否相同的代码,如下

Dim a() As Byte, b() As Byte
Dim a2 As String
Open "d:\1.bmp" For Binary As #1
ReDim a(LOF(1) - 1)
Get #1, , a
Close #1
Open "d:\2.bmp" For Binary As #1
ReDim b(LOF(1) - 1)
Get #1, , b
Close #1
If StrConv(a, vbUnicode) = StrConv(b, vbUnicode) Then
                    Shape1.BackStyle = 1
                    Shape1.BackColor = QBColor(12) '红色
                    a2 = "0"
                    Open "d:\1.txt" For Output As #2
                    Print #2, a2
                    Close #2
Else
                    Shape1.BackStyle = 1
                    Shape1.BackColor = QBColor(10) '绿色
                    a2 = "1"
                    Open "d:\1.txt" For Output As #2
                    Print #2, a2
                    Close #2
End If

单独运行是完全正常的,但带到定时截屏对比程序中(也就是说每隔x秒钟截一次屏对比一次)就会出错,就算是屏幕上没有任何变化,Shape也会一红一绿的闪,有人说是比较部分有问题,不能把数据转为字符串来比较,而应该进行二进制比较,分别比较每个元素.并修改如下:

Dim i As Long, k As Boolean
k = False
For i = 0 To UBound(b)
    If a(i) <> b(i) Then
        k = True    '找到不同
        Exit For
    End If
Next i
    
    Shape1.BackStyle = 1
    Open "d:\1.txt" For Append As #2
    If k Then   '不相同
        Shape1.BackColor = vbGreen  '绿色
        Print #2, "1"
    Else        '相同
        Shape1.BackColor = vbRed    '红色
        Print #2, "0"
    End If
    Close #2



我菜鸟一个,不知如何将1.bmp,2.bmp带到修改过的程序里去,请帮助我!

又有人说,我的逻辑设计可能有问题,我现在把整个程序挂上,请大家帮我看看,是哪里错了。谢谢!