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 に答える