[英]Vb.net Move a Picture in a PictureBox to another PictureBox
我正在vb.net中制作游戏,并且试图将一个图片框中的图片移动到另一个图片框中。 但是我无法使它工作。
Dim ChestPlate As Image = My.Resources.ChestPlate
Private Sub pictureBox1_Click(sender As Object, e As EventArgs) Handles pictureBox1.Click
If pictureBox1.Image Is ChestPlate Then
pictureBox2.Image = ChestPlate
pic1tureBox1.Image = Nothing
End If
End Sub
不幸的是,您不能仅在.NET中使用“ =”来比较图像。 关于此问题,StackOveflow上有很多答案。 您可以使用第三方库来完成所需的工作。 您也可以签出此Microsoft库链接,尽管我不知道它是否可以使用ImageComparer 。 如果您正在处理小图像,则可以比较每个像素以查看图像是否匹配。
'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
查看此链接: 如何在VB.NET中进行比较
另外,为了将来参考,“ is”关键字不检查值是否相等,而是检查对象是否相等,因此即使图像相同,因为它们是不同的对象,也会返回false。 C#IS关键字
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.