2017-07-31 9 views
1

画像をオンラインでダウンロードしてファイルに保存するプログラムがあります。しかし、2つの画像の名前が同じであれば、ファイル名を変更して最後に1を加えてエラーがないようにするコードがあります。しかし、イメージの名前を変更する前に、イメージが同じかどうかを最初に確認する方が良いと考えていました。そして私はVBで自分の画像比較コードを作るのにまだ十分近いところにないので、Googleを見てこのコードを見つけましたが、コードは2つの同一の画像が異なっていると言っていますか?誰かが問題を見ることができたら、私は大変感謝しています。Visual Basic 2つの画像が同じかどうかを確認する

編集:私はすでに自分のフォルダに保存されている画像をインターネットからの画像と比較しています。

再編集:これを変更する必要があることを誰かが知っていれば、イメージ変数の1つが正しく読み込まれていないことがわかりました。私はテストのためにイメージ変数を同じようにしていたので、うまくいきました。ただ、誰もが、それは特定のフォルダ内のすべてのファイルに対して、画像を確認するように私はそれを作ることができる方法を知っている場合には好奇心のうち

Dim image1 As Bitmap = New System.Drawing.Bitmap(New IO.MemoryStream(New System.Net.WebClient().DownloadData(picture))) 
Dim image2 As Bitmap = CType(Image.FromFile(path + "\" + uname + ".png", True), Bitmap) 
Dim a As Boolean = AreSameImage(image1, image2) 
If a Then 
    MsgBox("Identical image") 
Else 
    MsgBox("Different images") 
End If 

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 

- これは本当に参考になります。再度、感謝します!

答えて

0

この

Dim req As WebRequest = WebRequest.Create("http://www.google.co.il/Picture.jpg") 
Dim stream As Stream = req.GetResponse().GetResponseStream() 
Dim img As Image = Image.FromStream(stream) 
Dim image1 As Bitmap = New Bitmap(img) 

のようにあなたの写真をロードしようと正しい画像2のパスですか?

+0

私はうまくいきませんでしたが、イメージを比較する前にimage1をダウンロードしていたので、イメージ2の場合と同じようにしました。 – 1ben99

関連する問題