PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : .NET System.Drawing.Bitmap interne Daten


Corrail
2005-01-09, 19:44:10
Hallo!

Ich hab folgendes Problem: Ich muss in C# ;( eine Projekt für die Uni realisieren. Und zwar geht es konkret um die Visualisierung von fehlerkorrigierenden Codes anhand von Bildern. Das Problem was ich jetzt habe ist, wie komme ich an die Bilddaten von der .NET Klasse System.Drawing.Bitmap ran?

Danke für jeden Hinweis!

Demirug
2005-01-09, 20:44:25
LockBits ist dein Freund.

Für den Fall das du keine Unsafe Blöcke benutzen kannst/darfst wirst du noch Marshal.Copy brauchen.

Corrail
2005-01-09, 22:48:13
Danke erstmal für die schnelle Antwort!

Ich würde es gern als Array (byte array oder so) weiterverarbeiten. Geht das mit diesen LockBits? Muss leider sagen, dass ich von .NET nicht viel Ahnung hab. Hast du dazu ein paar Resourcen wo man das nachlesen kann?

[EDIT] Sorry, hab schon was gefunden. google is my friend ;)

Demirug
2005-01-09, 22:52:12
Dafür habe ich sogar den passenden Code zur Hand:

byte[] imagebits = new byte[bitmap.Width*bitmap.Height*4];
BitmapData bitdata = bitmap.LockBits (new Rectangle (0,0, bitmap.Width, bitmap.Height), ImageLockMode.ReadOnly, PixelFormat.Format32bppArgb);
Marshal.Copy (bitdata.Scan0, imagebits, 0, imagebits.Length);

Corrail
2005-01-09, 22:57:22
Perfekt, danke dir!!