Laden...

Bitmap to ByteArray was ist falsch?

Erstellt von thefiloe vor 12 Jahren Letzter Beitrag vor 12 Jahren 918 Views
Thema geschlossen
T
thefiloe Themenstarter:in
87 Beiträge seit 2010
vor 12 Jahren
Bitmap to ByteArray was ist falsch?

Ich will eine Bitmap zu einem ByteArray konvertieren. Bis jetzt habe ich folgendes:

public static byte[] ToByteArray(this Bitmap map, System.Drawing.Imaging.ImageFormat format)
        {
            MemoryStream byteStream = new MemoryStream();
            map.Save(byteStream, format);
            byte[] buffer = new byte[byteStream.Length];
            System.Diagnostics.Debug.WriteLine(byteStream.Read(buffer, 0, buffer.Length));
            byteStream.Dispose();
            return buffer;
        }

Also ist praktisch eine Extension. Nur das komische ist wieso ist bekomm ich bei read immer 0 zurück also keine gelesenen bytes?

916 Beiträge seit 2008
vor 12 Jahren

Hi thefiloe,

schau mal hier Bitmap in byte array schreiben.

Again what learned...

T
thefiloe Themenstarter:in
87 Beiträge seit 2010
vor 12 Jahren

oh danke gibt ja schon ne funktion die das read ersetzt.
Trotzdem wundert mich das wieso ich das nicht lesen kann? CanRead ist auf true ...

2.891 Beiträge seit 2004
vor 12 Jahren

Du musst die Position wieder auf 0 setzen.
Denn der "Cursor" steht nach dem Schreiben in den Stream ja ganz am Ende. Wenn du danach liest, steht ja nichts weiter dahinter.

T
thefiloe Themenstarter:in
87 Beiträge seit 2010
vor 12 Jahren

omg jaa natürlich haste recht 😄
Hätt ich wissen können 😃

Aber eine Frage hätt ich noch und zwar erzeuge ich in einer Methode (ne andere 😄) nen MemoryStream und gebe diesen am Ende gefüllt mit Daten zurück. Wenn ich diesen aber zurück gebe habe ich CanRead auf false was nicht Sinn der Sache ist. Nun meine Frage: Laut msdn heißt das beim MemoryStream, dass er geschlossen ist. Wieso schließt er sich? Könnte es helfen wenn ich ihn als Referenz übergebe?

MSDN:

If the stream is closed, this property returns false.

Hinweis von herbivore vor 12 Jahren

Die Nachfrage hängt zwar eng mit dem Beitrag davor zusammen, aber hat eben leider nichts mit dem Titel des Threads zu tun. Siehe [Hinweis] Wie poste ich richtig? Punkt 1.2.

Thema geschlossen