2017-07-31 218 views
1

因此,我有一个程序在线下载图像,然后将它们存储在文件中。但是,如果两个图像具有相同的名称,我有一段代码可以更改文件名,以便在结尾添加1以便不会出现错误。但是,我认为在重命名之前首先检查图像是否相同会更好。而且我还没有接近VB的好处,至今还没有制作自己的图像比较代码,所以我查看了谷歌并找到了这个代码,但代码说2个相同的图像是不同的?如果有人可以看看这个问题,我将非常感激。Visual Basic检查两个图像是否相同或不同

编辑:为了进一步清晰起见,我将我已经存储在我的文件夹中的图像与来自互联网的图像进行比较。

重新编辑:我发现,如果有人知道我需要改变这将有助于我没有正确加载一个图像变量?由于我使图像变量测试相同,并且工作正常。

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之前比较它们,所以我只是做了相同的,因为我为image2所以现在罚款。 – 1ben99

相关问题