我有一个.png文件,我做了以下两件事
将文件读取为字节数组
byte[] arr = File.ReadAllBytes(Filename)
使用Emgu读取它,将文件读入Image,然后使用以下内容将Bitmap转换为字节数组。
Image<Gray,Byte> Img = new Image<Gray,Byte>(Filename);
byte[] arr = ImageToByte2(Img.Bitmap);
public static byte[] ImageToByte2(Image img)
{
using (MemoryStream stream = new MemoryStream())
{
img.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
return stream.ToArray();
}
}
我在字节数组的长度上有所不同。我不明白为什么会有区别。请帮忙。
答案 0 :(得分:1)
第一个选项读取文件的所有字节,包括标题,而第二个选项只读取普通图像的字节。
有关png的结构和标题的更多信息,请参阅:https://en.wikipedia.org/wiki/Portable_Network_Graphics