正在通过在VB.NET中比较两个图像的字节数组有效吗?

问题描述 投票:0回答:1

我需要比较两个图像并找出它们是否相等(图像上不参考)。>>

所以我采用了这种方法:

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 ...

arrays .net vb.net image compare
1个回答
0
投票

我认为比较它们的哈希值会更快。 – CruleD Aug

© www.soinside.com 2019 - 2024. All rights reserved.