19 Stimmen

Stream als Bild speichern

Wie kann man einen Stream als Bild speichern und das Bild in temporären Dateien ablegen?

1 Stimmen

Was genau meinen Sie mit "als Bild"?

0 Stimmen

Image bedeutet hier eine jpeg-Bilddatei, die in den temporären Dateien gespeichert werden soll, und Stream ist System.IO.Stream.

40voto

Unmesh Kondolikar Punkte 9116

Essayez

Image img = System.Drawing.Image.FromStream(myStream);

img.Save(System.IO.Path.GetTempPath() + "\\myImage.Jpeg", ImageFormat.Jpeg);

0 Stimmen

Der Bildschritt ist nicht erforderlich. Wir können den Stream direkt in eine Datei schreiben.

2 Stimmen

Ja Aber ich bin davon ausgegangen, dass banupriyavijay irgendetwas mit dem Bild in der Bewerbung machen will. Ansonsten wäre es nur ein Dateikopiervorgang, der mit System.IO.File.Copy() durchgeführt werden kann.

3 Stimmen

Wenn ich diese Zeile schreibe Image img = System.Drawing.Image.FromStream(stream); erhalte ich die Fehlermeldung "Parameter ist nicht gültig".

7voto

VinayC Punkte 44872
var tempFile = Path.GetTempFileName();
using (var fs = File.Create(tempFile))
{
   source.copyTo(fs);
}

wobei source der Quelldatenstrom ist. Jetzt wird Ihr Quelldatenstrom an einem temporären Ort gespeichert (angegeben durch tempFile). Beachten Sie, dass die Dateinamenerweiterung TMP lautet.

2 Stimmen

+1 für die Funktion Path.GetTempFileName(), von der ich nicht wusste, dass sie jemals existierte.

0 Stimmen

FileStream enthält keine Definition für Creat

0 Stimmen

S

1voto

Filip Ekberg Punkte 35716

Werfen Sie einen Blick auf die Bitmap-Klasse . Es gibt eine Konstruktorüberladung, die einen Stream als Parameter annimmt, und es gibt eine Methode namens Speichern Sie mit dem Sie es als Datei speichern können.

0 Stimmen

T

0voto

ickydime Punkte 1001

Für Windows Phone 8.1 habe ich folgendes gefunden, das gut funktioniert. Erstellen Sie Ihre TempStorageFile unter einem beliebigen Pfad und geben Sie dann den Stream Ihres Bildes wie folgt ein:

var fileStream = await TempStorageFile.OpenAsync(Windows.Storage.FileAccessMode.ReadWrite);
            await RandomAccessStream.CopyAsync(imageStream, fileStream);

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X