Byte-Array in Bitmap umwandeln C#



  • Hi,

    suche nach einer schnellen Möglichkeit ein Byte-Array in ein Bitmap zu wandeln. Möchte also nicht jedes Byte einzeln in das Bitmap kopieren.
    Habe bereits im Internet danach gesucht, und bin auch fast fündig geworden. Fast heisst, es gibt im Inhaltsverzeichnis des Buchs "Das C# Codebook" im Kapitel "Multimedia, Bilder und Grafiken" einen Unterpunkt "Byte-Array in Bitmap umwandeln". Wollt mir aber jetzt nicht deswegen gleich das Buch kaufen und in meiner Bibliothek haben sie das Buch nicht.
    Also frag ich einfach mal hier nach ob das jemand schon mal gemacht hat und mir weiter helfen kann.

    Danke schonmal



  • MemoryStream ms = new MemoryStream(deinByteArray);
    Bitmap b = new Bitmap(ms);
    ms.Close();
    


  • Danke für den Tip aber bei mir geht des leider aus mir unerfindlichen Gründen nicht.
    Hier mal mein Code:
    Zuerst erstelle ich mein Byte-Array

    byte[] array = new byte[614400];
    

    dann werden über eine externe Funktion Werte in das Array geschrieben (hab ich überprüft und hier nicht extra den Code dazu reingeschrieben)
    dann mach ich nichts anderes als

    MemoryStream msR = new MemoryStream(array); 
    bmp= new Bitmap(msR);		//zuvor schon deklariert 	
    msR.Close();
    

    Compelliert wirds, aber bei der Zeile

    bmp = new Bitmap(msR);
    

    geht er in

    catch(System.ArgumentException)
    {...}
    

    Aber eigentlich sollte es so gehen, steht so in der Hilfe drin.
    Kann mir jemand weiterhelfen?
    Danke schonmal



  • hm,
    so vielleicht ?

    // File in Array
    			FileStream f=File.Open("C:\\2ps.jpg",FileMode.Open);
    			byte[] array= new byte[f.Length];
    			f.Read(array,0,(int)f.Length);
    
    			// Array in MemoryStream packen
    			MemoryStream m=new MemoryStream(array);
    
                      // Bitmap vom Stream erzeugen
    			Bitmap b=(Bitmap)Bitmap.FromStream(m);
    
                      // Bild anzeigen
    			Graphics g= this.CreateGraphics();
    	            g.DrawImage(b,new PointF(10,10));
    


  • hmm hab jetzt rausgefunden wiesos nicht geht.
    Ich hab an meinem Byte-Array keinen BitmapHeader dran und drum kann ich das Byte-Array nicht in ein Bitmap wandeln. Weiss von euch jemand wie man in C# einen BitmapHeader erstellt und ans Byte-Array hängen kann, oder ne andre Möglichkeit wie ich ein Byte-Array als Bild zur Anzeige bringen kann.



  • Das ist alles einfach zu implementieren. Schau mal unter http://www.wotsit.org/search.asp?s=graphics nach einer Beschreibung des Formats nach. mfg h4xX0r


Anmelden zum Antworten