У мене є System.Drawing.Imageпрограма. Файл відсутній у файловій системі, він зберігається в пам'яті. Мені потрібно створити з нього потік. Як би я це зробив?
Відповіді:
Спробуйте наступне:
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 на будь-який формат, який підходить для вашого сценарію.
Використовуйте потік пам'яті
using(MemoryStream ms = new MemoryStream())
{
image.Save(ms, ...);
return ms.ToArray();
}
public static Stream ToStream(this Image image)
{
var stream = new MemoryStream();
image.Save(stream, image.RawFormat);
stream.Position = 0;
return stream;
}