System.Drawing.Image zum Streamen von C #


74

Ich habe eine System.Drawing.Imagein meinem Programm. Die Datei befindet sich nicht in dem Dateisystem, in dem sie gespeichert ist. Ich muss einen Stream daraus erstellen. Wie würde ich das machen?

Antworten:


147

Versuche Folgendes:

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

Dann können Sie Folgendes verwenden:

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

Ersetzen Sie GIF durch das für Ihr Szenario geeignete Format.


Ich habe gerade genau das Gleiche geschrieben!
Konfigurator

System.Drawing.Image.Save erfordert beim Speichern in einem Stream ein Format. msdn.microsoft.com/en-us/library/ms142147.aspx
jcollum

10
Sie können das ursprüngliche Bildformat beibehalten, indem Sie die Anweisung zum Speichern von Bildern in Folgendes ändern: image.Save (stream, image.RawFormat);
Marko

14

Verwenden Sie einen Speicherstrom

using(MemoryStream ms = new MemoryStream())
{
    image.Save(ms, ...);
    return ms.ToArray();
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.