我在将字节流从图像(在本例中为 jpg)保存到 System.IO.MemoryStream
对象时遇到了一些困难。目标是将 System.Drawing.Image
保存到 MemoryStream
,然后使用 MemoryStream
将图像写入字节数组(我最终需要将它插入数据库)。但是,在 MemoryStream
关闭后检查变量 data
显示所有字节都为零......我很困惑,不知道我做错了什么...
using (Image image = Image.FromFile(filename))
{
byte[] data;
using (MemoryStream m = new MemoryStream())
{
image.Save(m, image.RawFormat);
data = new byte[m.Length];
m.Write(data, 0, data.Length);
}
// Inspecting data here shows the array to be filled with zeros...
}
任何见解将不胜感激!
最佳答案
要将流中的数据加载到数组中,您需要读取,而不是写入(并且您需要倒带)。但是,在这种情况下更简单,ToArray()
:
using (MemoryStream m = new MemoryStream())
{
image.Save(m, image.RawFormat);
data = m.ToArray();
}
关于c# - 难以将图像保存到 MemoryStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7629887/