5

我需要检查特定图像的图片框。我知道您可以检查图片框是否填充了图像...

If Not pictureBox.Image is Nothing Then

Else

End If

但就我而言,我需要检查这个图片框是否有我在此过程中早些时候加载的图像。

这是我用来加载图像的当前代码...

PictureBox1.Image = My.Resources.TestImage1

我认为通过使用以下代码可以检查图像名称,但这显然不起作用。

If PictureBox1.Image = My.Resources.TestImage1 Then
  'do something
Else
  'do something else
End if

建议?

4

2 回答 2

5

图像不知道文件名或从中加载它的任何其他名称。但是,您可以做的是逐像素比较图像。试试这个代码:

Public Function AreSameImage(ByVal I1 As Image, ByVal I2 As Image) As Boolean
  Dim BM1 As Bitmap = I1
  Dim BM2 As Bitmap = I2
  For X = 0 To BM1.Width - 1
    For y = 0 To BM2.Height - 1
      If BM1.GetPixel(X, y) <> BM2.GetPixel(X, y) Then
        Return False
      End If
    Next
  Next
  Return True
End Function

信用在这里

我在寻找这个答案时发现了一篇有用的文章:

这是您检查图像是否小于 100% 相等(即相似)的方法。

于 2013-01-30T14:15:54.840 回答
2
Dim a as image=my.resources.image1.jpg' imported file from resources
Dim b as image=my.resources.image2.jpg' imported file from resources

Private Sub Form1_Load(sender As Object, e As System.EventArgs) Handles Me.Load

picturebox1.image=a
picturebox2.image=b

end sub

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

   if picturebox1.image is a and picturebox2.image=b then

      picturebox2.image=a
      picturebox1.image=nothing
   else
      picturebox2.image=b
      picturebox1.image=a
end if
end sub

..................去尝试一下!:)

于 2014-01-11T06:41:50.800 回答