Reputation: 1044
I need to check a picturebox for a specific image. I know you can check if the picturebox is populated with an image...
If Not pictureBox.Image is Nothing Then
Else
End If
But in my case, I need to check this picturebox for an image I loaded earlier on in the process.
Here is the current code I'm using to load the image...
PictureBox1.Image = My.Resources.TestImage1
I thought by using the following code I could check the image name, but this apparently does not work.
If PictureBox1.Image = My.Resources.TestImage1 Then
'do something
Else
'do something else
End if
Suggestions?
Upvotes: 5
Views: 7265
Reputation: 21
Dim a as image=my.resources.image1.jpg' imported file from resources
Dim b as image=my.resources.image2.jpg' imported file from resources
Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load
picturebox1.image=a
picturebox2.image=b
end sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
if picturebox1.image is a and picturebox2.image=b then
picturebox2.image=a
picturebox1.image=nothing
else
picturebox2.image=b
picturebox1.image=a
end if
end sub
..................Just try it! :)
Upvotes: 2
Reputation: 26454
Image does not have any knowledge of the file name or any other name that it has been loaded from. What you can do, however, is compare images pixel-by-pixel. Try this code:
Public Function AreSameImage(ByVal I1 As Image, ByVal I2 As Image) As Boolean
Dim BM1 As Bitmap = I1
Dim BM2 As Bitmap = I2
For X = 0 To BM1.Width - 1
For y = 0 To BM2.Height - 1
If BM1.GetPixel(X, y) <> BM2.GetPixel(X, y) Then
Return False
End If
Next
Next
Return True
End Function
Credit goes here.
A useful article I found when looking for this answer:
This is how you can check if your images are less than 100% equal, i.e. similar.
Upvotes: 5