System.Drawing.Image для потока С#

У меня есть System.Drawing.Image в моей программе. Файл не находится в файловой системе, хранящейся в памяти. Мне нужно создать поток из него. Как я могу это сделать?

Ответ 1

Попробуйте следующее:

public static Stream ToStream(this Image image, ImageFormat format) {
  var stream = new System.IO.MemoryStream();
  image.Save(stream, format);
  stream.Position = 0;
  return stream;
}

Затем вы можете использовать следующее:

var stream = myImage.ToStream(ImageFormat.Gif);

Замените GIF любым форматом, подходящим для вашего сценария.

Ответ 2

Использовать поток памяти

using(MemoryStream ms = new MemoryStream())
{
    image.Save(ms, ...);
    return ms.ToArray();
}