我需要比较两个图像并找出它们是否相等(图像上不参考)。>>
所以我采用了这种方法:
Public Function ToArray(ByRef img As Image) As Byte() Dim m As New MemoryStream img.Save(m, Imaging.ImageFormat.Bmp) Return m.ToArray() End Function
我首先将两个图像都转换为字节数组,然后:
Public Function ValEquals(ByRef orig As Image, ByRef toCompareTo As Image) As Boolean Dim result As Boolean = True Dim orig_arr() As Byte = ToArray(orig) Dim toCompareTo_arr() As Byte = ToArray(toCompareTo) If orig_arr.Count = toCompareTo_arr.Count Then For i As Int64 = 0 To orig_arr.Count - 1 If orig_arr(i) <> toCompareTo_arr(i) Then result = False Exit For End If Next Else result = False End If Return result End Function
如果相等,则逐字节比较两个数组。
这是找出两个图像是否相等的有效方法吗?
[我看到了人们拍摄图像并比较this之类的每个像素的不同方法。
哪个更好或更正确?
Thx ^〜^
我需要比较两个图像,并找出它们是否相等(图像上不参考)。所以我采用了这种方法:公共函数ToArray(ByRef img作为图像)作为Byte()昏暗作为新的MemoryStream ...
我认为比较它们的哈希值会更快。 – CruleD Aug