问题描述
我尝试通过计算MD5比较内存中创建的位图和从磁盘加载的位图。为什么我得到不同的结果?
MD5功能:
public static string GetMD5HashFromFileAsstream(Bitmap bitmap)
{
using (var md5 = MD5.Create())
{
using (MemoryStream memoryStream = new MemoryStream())
{
if (memoryStream != null)
{
bitmap.Save(memoryStream,System.Drawing.Imaging.ImageFormat.Bmp);
memoryStream.Seek(0,SeekOrigin.Begin);
return BitConverter.ToString(md5.ComputeHash(memoryStream)).Replace("-",string.Empty);
}
else
{
return "empty";
}
}
}
}
问题示例:
Bitmap Bitmap = new Bitmap(1,2); //Create new bitmap x,y
Console.WriteLine(GetMD5HashFromFileAsstream(Bitmap)); // Counting MD5
Bitmap.Save(@"c:\test\BmpFile.bmp"); // Save on drive
Bitmap AuxBitmap = new Bitmap(@"c:\test\BmpFile.bmp"); // Load from drive
Console.WriteLine(GetMD5HashFromFileAsstream(AuxBitmap)); // Counting MD5
// OUTPUT: MD5(Bitmap) != MD5(AuxBitmap)
// 9A261ECE67F40519C4DB58E394F2CF84
// 8E60CCA3D8C2301ECEA60ADBD55D39BA
为什么它们不同?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)