| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 453 人关注过本帖
标题:请帮我看一下程序的问题。
取消只看楼主 加入收藏
ictest
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:333
专家分:114
注 册:2010-2-17
结帖率:70%
收藏
 问题点数:0 回复次数:0 
请帮我看一下程序的问题。
这是我写的一段对比两张图片是否相同的代码,如下

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带到修改过的程序里去,请帮助我!

又有人说,我的逻辑设计可能有问题,我现在把整个程序挂上,请大家帮我看看,是哪里错了。谢谢!
区域性截屏-2.rar (4.45 KB)
搜索更多相关主题的帖子: 图片 
2010-05-06 00:21
快速回复:请帮我看一下程序的问题。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016668 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved