51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 1479|回复: 3
打印 上一主题 下一主题

[原创] 图片比较

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-8-19 18:16:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在写图片比较脚本时,遇到问题.
我的设计思路是如果两个文件二进制比较不同,则认为图片内容不同.

但是在测试过程中发现,我写的函数, 当图片不同时,二进制比较竟然相同.


脚本如下
'*********************************

   Function  Compare   (arg1 ,arg2)

   Const ForReading = 1, ForWriting = 2
    Dim fso, MyFile,MyFile1
   
   Set fso = CreateObject("Scripting.FileSystemObject")
   Set MyFile    = fso.OpenTextFile(arg1, ForReading, True)
   Set MyFile1 = fso.OpenTextFile(arg2, ForReading, True)
   Flag=0
   Dim tmp ,tmp1
   tmp=0
   tmp1=0
While MyFile.AtEndofLine<>true  and MyFile1.atendofline <>true
   
    tmp=MyFile.readline
tmp1=MyFile1.readline
res=StrComp (tmp,tmp1,0)
    If res<>0 Then
    Flag=1
       End If
       Wend
   
    MyFile.Close
   MyFile1.Close
   
  If  Flag=0  Then   
      Compare=true
  else
        Compare= false
End If
   
End Function

path1="c:\back_icon1.bmp"
path2="c:\back_icon2.bmp"
msgbox compare (path1, path2)

补充一句:在debug过程中,我发现一个问题.
在set myfile 和myfile1 结束后,  查看变量发现,myfile 和myfile1都只有一行一列, 我很困惑

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-8-20 13:50:10 | 只看该作者
你的函数没问题,我测下来可以分别出2张图片不一样,并输出False。
你大概在测的时候C盘下面没有back_icon1.bmp,和back_icon2.bmp吧?
如果没有这2个文件脚本会自动创建2个文件,所以比较下来2进制就一样了。

至于你说只有一行一列的问题,我debug下来发现readline这个函数是读取文件中的一行数据,也就是以回车判断是否一行,BMP文件格式里面有可能没有换行符所以认为整个文件就是一行。
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-8-20 14:34:50 | 只看该作者
谢谢楼上的回答.

我困惑的地方在于:
1. 正如你说,返回Flase.  
    你是否注意到,此时,DEBUG VIEW中 MYFILE和MYFILE2创建时, colume 并不是1

2.  而当出现错误,返回true时
     DEBUG VIEW 中  MYFILE和MYFILE2创建时, colume 显示为1

我担心指针在MYFILE 和MYFILE1 创建时,就直接指到最后一行,导致只比较两个文件的最后一行,相同,因此返回true
我用UC二进制对比过了,最后一行是一样的.

我想知道如果readline后, 如何可以将指针跳回刚才已读的那行
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-8-20 14:52:02 | 只看该作者
我这里debug时看到MyFile喝MyFile1创建时Column就是1,看图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-10-7 18:20 , Processed in 0.079083 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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