难以将图像保存到MemoryStream

And*_*rew 16 c# image stream

我在将一个字节流从图像(在本例中为jpg)保存到System.IO.MemoryStream对象时遇到了一些困难.目标是保存System.Drawing.Image到a MemoryStream,然后使用将MemoryStream图像写入字节数组(我最终需要将其插入数据库).但是,dataMemoryStream关闭后检查变量表明所有字节都是零...我很难过,不知道我在哪里做错了...

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...
}
Run Code Online (Sandbox Code Playgroud)

任何见解将不胜感激!

Mar*_*ell 31

要将数据从流加载到数组中,您需要阅读,而不是写入(并且您需要回放).但是,在这种情况下更简单ToArray():

using (MemoryStream m = new MemoryStream())
{
    image.Save(m, image.RawFormat);
    data = m.ToArray();
}
Run Code Online (Sandbox Code Playgroud)