我正在尝试检查我的panel0.background图像是否与来自资源的图像相同,然后将一些字符串添加到arraylist。
这似乎不起作用:
If (Panel0.BackgroundImage Is My.Resources.Dinoback) Or (Panel0.BackgroundImage Is My.Resources.Dinoback2) Then
Form1.jenisbuddyarr.Add("dino")
ElseIf (Panel0.BackgroundImage Is My.Resources.Rabbitback) Or (Panel0.BackgroundImage Is My.Resources.Rabbitback2) Then
Form1.jenisbuddyarr.Add("rabbit")
ElseIf (Panel0.BackgroundImage Is My.Resources.Squirrelback) Or (Panel0.BackgroundImage Is My.Resources.Squirrelback2) Then
Form1.jenisbuddyarr.Add("squirrel")
End If
答案 0 :(得分:0)
问题是你当前的代码会检查它们是否来自同一个对象(事实并非如此)。检查此主题:Comparing two images visually
Public Function AreSameImage(ByVal I1 As Image, ByVal I2 As Image) As Boolean
Dim MS1 As New MemoryStream
Dim MS2 As New MemoryStream
I1.Save(MS1, ImageFormat.Bmp)
I2.Save(MS2, ImageFormat.Bmp)
For I As Integer = 0 To CInt(MS1.Length) - 1
If MS1.ReadByte() <> MS2.ReadByte Then Return False
Next
Return True
End Function
If (AreSameImage(Panel0.BackgroundImage, My.Resources.Dinoback)) '...