c# - 如何使用字节数组比较两个图像

标签 c# image bytearray

我希望能够将 Byte[] 转换为 Image,反之亦然。

这两种方法来自 here :

public byte[] imageToByteArray(System.Drawing.Image imageIn)
{
    MemoryStream ms = new MemoryStream();
    imageIn.Save(ms,System.Drawing.Imaging.ImageFormat.Gif);
    return  ms.ToArray();
}

public Image byteArrayToImage(byte[] byteArrayIn)
{
     MemoryStream ms = new MemoryStream(byteArrayIn);
     Image returnImage = Image.FromStream(ms);
     return returnImage;
}

它们似乎有效,但如果我这样做:

byte[] pic = GetImageFromDb();
bool result = pic == imageToByteArray(byteArrayToImage(pic));

我得到 result = false!

有什么方法可以更正此方法或一些不同的功能以实现我的目标?

谢谢!

最佳答案

使用 == 将比较未覆盖的对象引用。

由于这是两个不同 byte[] 对象,因此引用不同。

您需要逐项比较byte[] 对象以确认它们是相同的。您可以使用 SequenceEquals在这种情况下。

关于c# - 如何使用字节数组比较两个图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8764280/

相关文章:

c# - 设置树的边界(数据结构)

c# - .NET 应用仅在 Release模式下挂起,有时 ... :-(

c# - 在图片框中缩放图像

image - Chrome 将 jpg 资源解释为文档

javascript - Safari 中的 CSS 缩放问题

redis - 有人能告诉我如何分析来自 redis 的 bytearray 键吗?

c# - 为什么这个 LINQ 连接语句不起作用?

c# - 在列表框中搜索包含字符串的项目

Java:byte[] 到 Byte[]

java - 将字节数组转换/显示为 bmp/jpeg 图像