我如何(尽可能快)确定两个位图是否相同,按值,而不是通过引用?有没有快速的方法呢?
如果比较不需要非常精确怎么办?
答案 0 :(得分:6)
您可以先检查尺寸 - 如果它们不同则中止比较。
对于比较本身,您可以使用多种方式:
答案 1 :(得分:2)
您可以使用像MD5这样的简单哈希来确定它们的内容是否散列到相同的值。
答案 2 :(得分:2)
您需要一个非常精确的“不太精确”的定义。
所有已发布的Checksum或Hash方法仅适用于精确(像素和位)匹配。
如果你想要一个对应于“他们看起来(有点)相似”的答案,你将需要更复杂的东西。
答案 3 :(得分:1)
尝试比较两个文件的哈希值
using System;
using System.IO;
using System.Security.Cryptography;
class FileComparer
{
static void Compare()
{
// Create the hashing object.
using (HashAlgorithm hashAlg = HashAlgorithm.Create())
{
using (FileStream fsA = new FileStream("c:\\test.txt", FileMode.Open),
fsB = new FileStream("c:\\test1.txt", FileMode.Open)){
// Calculate the hash for the files.
byte[] hashBytesA = hashAlg.ComputeHash(fsA);
byte[] hashBytesB = hashAlg.ComputeHash(fsB);
// Compare the hashes.
if (BitConverter.ToString(hashBytesA) == BitConverter.ToString(hashBytesB))
{
Console.WriteLine("Files match.");
} else {
Console.WriteLine("No match.");
}
}
}
}
}