Improve company productivity with a Business Account.Sign Up

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 505
  • Last Modified:

Compare Bitmaps and get XY coordinates

Greetings!

I wish to compare two bitmaps of the same size/depth/etc and create a list of xy coordinates that are different between the two.

Thanks in advance.
0
bhh
Asked:
bhh
  • 2
1 Solution
 
ArkCommented:
Hi
'API way is faster then native VB.

Private Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
Dim sList() As String
Private Function CreateList() As Long
   Dim x As Integer, y As Integer
   Dim clr1 As Long,clr2 As Long
   Dim nCount As Long
   Redim sList(0)
   sList(0) = "Pictures are different at:"
   Picture1.ScaleMode = vbPixels
   Picture2.ScaleMode = vbPixels
   For x = 1 To Picture1.ScaleWidth
       For y = 1 To Picture1.ScaleHeight
           clr1 = GetPixel(Picture1.hdc,x,y)
           clr2 = GetPixel(Picture2.hdc,x,y)
           If clr2 <> clr1 Then
              nCount = nCount + 1
              Redim Preserve sList(nCount)
              sList(nCount) = "X = " & x & "; Y = " & Y
           End If
       Next y
   Next x
End Function

Cheers
0
 
VbmasterCommented:
If this is only for very small bitmaps read no further. But if you are to compare large bitmaps you might want to read about DIB's (Device Independant Bitmaps) which allows you to access a bitmap's actual pixels directly. This would allow you to compare two bitmaps by just comparing a byte array with another byte array, which is *much* faster than the GetPixel solution. To learn about DIB's and download free source code showing you how to use 'em go to the "Media" section at...

  http://www.vbaccelerator.com

...and download the cDIBSection.cls file.
0
 
bhhAuthor Commented:
I'll try both and get back to you.  Give me a couple of days to play with it.  Thanks!
0
 
bhhAuthor Commented:
This was a tough one.  I decided to go with Ark's answer simply because it exactly matched my question and need.

VBMaster - your suggestion opened up new worlds - thanks. Go here: http://www.experts-exchange.com/jsp/qManageQuestion.jsp?ta=visualbasic&qid=20177332

0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now