繁体   English   中英

Vb.net将PictureBox中的图片移动到另一个PictureBox

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM