51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2380|回复: 2
打印 上一主题 下一主题

[原创] 不用checkpoint的Bitmap比较

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2007-4-17 09:48:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
以下是我用文件对BITMAP进行比较的方法.
但是这种方法只能比较两张图片的全部.不能比较比较图片中的部分区域.
LcdDlgTitle = "LCD Device(μPD16432B)"
LcdDlgTitle1 = "LCD1 Device(μPD16432B)"
dialog(LcdDlgTitle ).CaptureBitmap "c:\lcd.bmp",true
dialog(LcdDlgTitle1 ).CaptureBitmap "c:\lcd1.bmp",true

  Dim FS, File1, File2
   FilePath1 = "c:\lcd.bmp"
   FilePath2 = "c:\lcd2.bmp"
   Set FS = CreateObject("Scripting.FileSystemObject")
   If ( FS.GetFile(FilePath1).Size <> FS.GetFile(FilePath2).Size) Then
    msgbox "FilePath1:=" &  FS.GetFile(FilePath1).Size  & "endl"
    msgbox "FilePath2:=" &  FS.GetFile(FilePath2).Size & "endl"
         CompareFiles = 1
         'Exit Function
   End If
   Set File1 = FS.GetFile(FilePath1).OpenAsTextStream(1, 0)
   Set File2 = FS.GetFile(FilePath2).OpenAsTextStream(1, 0)
  
   CompareFiles = False
   Do While File1.AtEndOfStream = False
         Str1 = File1.Read(1000)
         Str2 = File2.Read(1000)
         CompareFiles = StrComp(Str1, Str2, 0)
         If CompareFiles <> 0 Then
                  CompareFiles = 1
                  Exit Do
         End If
   Loop
   File1.Close()
   File2.Close()
通过像素点的比较
Dim mybmp1
Dim mybmp2
Set mybmp1 = LoadPicture ("c:\lcd.bmp")
Set mybmp2 = LoadPicture ("c:\lcd1.bmp")
msgbox mybmp1.Height  
msgbox mybmp1.Width
For   Y   =   0   To   mybmp1.Height   
  For   X   =   0   To   mybmp2.Width   
  fColor1   =   mybmp1.Point(X,   Y) '?????????????????????????????????????????????????????????????????????????  
  fColor2   =   mybmp2.Point(X,   Y)     
  if   fColor1<>fColor2   then     
  msgbox   "不一样!"   

  End   If   
  Next   'X
  Next   'Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    开心
    2016-2-27 08:48
  • 签到天数: 2 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2007-4-17 13:07:04 | 只看该作者
    谢谢 jerryshomaro  为我们提供了 图片比较的方法。如果谁有时间和兴趣,可以研究一下怎么用代码实现对图片中的部分区域的比较。希望各位朋友能多向jerryshomaro  学习!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2007-4-24 13:03:58 | 只看该作者
    Set oCompareUtil = CreateObject("Mercury.FileCompare")
       oCompareUtil.IsEqualBin(fileExp, fileAct, 0, 1)
    这样的不是简单多了么
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-13 13:30 , Processed in 0.068067 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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