0

panel0.background イメージがリソースのイメージと同じかどうかを確認してから、文字列を配列リストに追加しようとしています。

これはうまくいかないようです:

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
4

1 に答える 1

0

問題は、現在のコードが同じオブジェクトからのものかどうかをチェックすることです (そうではありません)。このスレッドを確認してください: 2 つの画像を視覚的に比較する

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)) '...
于 2013-06-09T09:27:58.427 に答える