![]() |
RGB -> Bitmap
Hi,
Also der Threadname siehtn bisschen komisch aus :mrgreen: Es geht darum das ich einen Stream hab in dem tausenden RGB-Werte stehen.. Ungefähr so: Zitat:
Bisher hab ich das so gemacht das ich alle RGB Werte einzeln ausgelesen habe und die dann mit TBitmap.Canvas.Pixels gemalt habe aber das ist ehhmm "etwas" langsam... :| Kann das vielleicht nicht etwa so machen :
Delphi-Quellcode:
? :|
Stream.Read(Bitmap, SizeOf(Byte)*Pixelanzahl*3);
So gehts glaub ich nicht aber halt so in der Richtung.. Gruß Neutral General |
Re: RGB -> Bitmap
Guck dir doch mal TBitmap.ScanLine in der OH an...
|
Re: RGB -> Bitmap
Mh kann man die auch zum schreiben von Pixeln benutzen ? o.O^^
|
Re: RGB -> Bitmap
Hi
Ich hatte mal ein aehnliches Problem, allerdings in C#, ich hab hier das erstellen des Bitmaps an dein Problem angepasst. Eine Uebersetzung sollte nicht die Allergroesste Schwierigkeit sein, da ja eigentlich nur Daten in einen Stream geschrieben werden ;)
Code:
Eine genauere Beschreibung hatte ich auf Wikipedia gefunden:
s.Write((ushort)0x4D42);
s.Write((uint)0); s.Write((uint)0); s.Write((uint)54); s.Write((uint)40); s.Write((uint)width); //Breite s.Write((uint)height); //Hoehe s.Write((ushort)1); s.Write((ushort)24); //24bpp s.Write((uint)0); s.Write((uint)0); s.Write((uint)0xEC4); s.Write((uint)0xEC4); s.Write((uint)0); s.Write((uint)0); for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { s.Write((byte)0); //B s.Write((byte)0); //G s.Write((byte)0); //R } for (int j = 0; j < (4 - (i * 3) % 4); j++) //die 3 bedeutet steht fuer die 24bpp in Byte s.Write((byte)0); //Jede Zeile wird auf eine 4Bit-Breite mit 0en aufgefuellt } h.Position = 2; s.Write((uint)h.Length); ![]() greetz Mike |
Re: RGB -> Bitmap
Hi,
Danke für den Ansatz ich glaube das wird mir helfen aber eine Zeile kann ich mir leider nicht übersetzen:
Delphi-Quellcode:
und was ist h ?
for (int j = 0; j < (4 - (i * 3) % 4); j++)
s.Write((byte)0); Gruß Neutral General |
Re: RGB -> Bitmap
Zitat:
Delphi-Quellcode:
for j := 0 to (4 - (i * 3) mod 4) - 1 do
//... Zitat:
Im ![]() greetz Mike |
Re: RGB -> Bitmap
ja aber s ist ja auch ein Stream. Wofür ist denn der h-Stream ?
in den S-Stream wird doch der Bitmap Header und dann das Bitmap selbst geschrieben. Wofür dann der andere Stream? |
Re: RGB -> Bitmap
Zitat:
greetz Mike |
Re: RGB -> Bitmap
Man kann das aber auch nur mit einem Stream machen oder ?
|
Re: RGB -> Bitmap
Zitat:
greetz Mike |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz