tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
5
ZUGRIFFE
688
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    JK_net JK_net ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    133
    Hallo!

    Ich habe in meiner Anwendung eine Variable (memStream) vom Typ MemoryStream deklariert, dieser möchte ich in einer Methode einen Stream zuweisen, und in einer anderen Methode wieder öffnen.
    Obwohl ich "memStream" nicht schließe, bekomme ich immer wieder eine Exception:
    'Additional information: Cannot access a closed Stream.'
    wenn ich darauf zu greifen möchte.

    Der Fehler tritt in folgendem Abschnitt in der 1. Zeile auf:

    Code :
    1
    2
    
    byte[] img = new byte[this.memStream.Length]; 
    memStream.Read(img, 0, Convert.ToInt32(memStream.Length));

    Kann mir dabei jemand behilflich sein?

    Vielen Dank im Voraus!

    MfG
    Jens
     

  2. #2
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Hast etwas in deinen Stream hineingeschrieben? Wie hast du deinen Stream initialisiert?
     

  3. #3
    JK_net JK_net ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    133
    Hi!

    So habe ich ihn initialisiert:

    Code :
    1
    
    MemoryStream memStream = new MemoryStream();

    Ich habe festgestellt, dass ich den zu kopierenden Stream in der Methode (stream) schließe.
    Das habe ich erstmal rausgenommen.

    Jetzt ist das Problem aufgetaucht, das ich den Stream in ein Byte-Array schreiben wollte. Dabei erstelle ich zwar ein Array mit der richtigen Länge, jedoch stehen keine Daten da drin.

    Vielleicht nochmal als Hintergrund:
    Ursprünglich habe ich versucht mit folgendem Code:

    Code :
    1
    2
    3
    4
    
    MemoryStream stream = new MemoryStream(); 
    this.picImage.Image.Save(stream, System.Drawing.Imaging.ImageFormat.Png);
    byte[] img = new byte[stream.Length];
    stream.Read(img, 0, Convert.ToInt32(stream.Length));

    Das Bild einer PictureBox als Byte-Array zu speichern, jedoch blieben auch dort die einzelen Felder des Arrays leer (0).
     

  4. #4
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    Image img = this.pictureBox1.Image;
    if (img != null) 
    {
        MemoryStream memStream  = new MemoryStream();
        img.Save(memStream, System.Drawing.Imaging.ImageFormat.Jpeg);
        if (memStream.Length > 0) 
        {
            byte[] muh = memStream.ToArray();
            
            string test = System.Text.Encoding.ASCII.GetString(muh,0,muh.Length);
            Console.WriteLine(test);
                        
        }
    }
     

  5. #5
    JK_net JK_net ist offline Mitglied Gold
    Registriert seit
    Nov 2004
    Beiträge
    133
    Super, vielen Dank!
    Jetzt habe ich meine Daten wieder!
     

  6. #6
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Und nicht vergessen, deinen Thread als erledigt zu markieren.
     

Ähnliche Themen

  1. Objekt aus MemoryStream erstellen
    Von Cromon im Forum .NET Café
    Antworten: 3
    Letzter Beitrag: 10.05.10, 08:35
  2. Geschlossenen MemoryStream wieder öffnen
    Von Danielku15 im Forum .NET Café
    Antworten: 4
    Letzter Beitrag: 20.07.09, 08:31
  3. Convertierung eines Strings in MemoryStream
    Von DK1FiWa im Forum .NET Café
    Antworten: 1
    Letzter Beitrag: 29.05.09, 12:08
  4. Vom memoryStream zur Ausführung ohne Umweg als File
    Von milvus im Forum .NET Datenverwaltung
    Antworten: 5
    Letzter Beitrag: 30.11.06, 11:22
  5. [C#] MemoryStream in Bitmap
    Von havalan im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 30.09.02, 14:57