web-dev-qa-db-fra.com

System.Drawing.Image pour diffuser C #

J'ai un System.Drawing.Image dans mon programme. Le fichier n'est pas dans le système de fichiers, il est conservé en mémoire. Je dois en créer un flux. Comment pourrais-je procéder?

68
Linda

Essayez ce qui suit:

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

Ensuite, vous pouvez utiliser les éléments suivants:

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

Remplacez GIF par le format approprié à votre scénario.

136
JaredPar

Utilisez un flux de mémoire

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