残念ながら、.NETでは「=」だけを使用して画像を比較することはできません。 StackOverflowにはこれに関する多くの答えがあります。あなたが望むことを実行するために使用できるサードパーティライブラリがあります。 ImageComparerが動作するかどうかはわかりませんが、このMicrosoftライブラリのリンクを確認することもできます。小さな画像で作業している場合は、各ピクセルを比較して、画像が一致するかどうかを確認できます。
'checks if two images are the same by comparing each pixel. not very fast for large images.
Private Function AreSameImage(ByVal bitmap1 As Bitmap, ByVal bitmap2 As Bitmap) As Boolean
For X = 0 To bitmap1.Width - 1
For y = 0 To bitmap2.Height - 1
If bitmap1.GetPixel(X, y) <> bitmap2.GetPixel(X, y) Then
Return False
End If
Next
Next
'If every pixel matched, return true
Return True
End Function
そして、あなたのクリックイベントのために:
Dim ChestPlate As Image = My.Resources.ChestPlate
Private Sub pictureBox1_Click(sender As Object, e As EventArgs) Handles pictureBox1.Click
If AreSameImage(picturebox1.image ,Chestplate) Then
pictureBox2.Image = ChestPlate
pic1tureBox1.Image = Nothing
End If
End Sub
は、このリンクをチェックアウト:How to make comparison in VB.NET
また、今後の参考のためのキーワードではなく、オブジェクトの平等のための価値の平等をチェックしません「されて」したがって、異なるオブジェクトであるためイメージが同じであっても、falseを返すことになります。 C# IS Keyword
何が問題なのですか?それはバグアウトですか?画像2は空白のままですか、両方の画像が空白になりますか? – mike100111
何も起こらず、picturebox1には画像があり、picturebox2には画像がありません。 – Grim