Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi In Dynamisches Array of Byte schreiben (https://www.delphipraxis.net/97676-dynamisches-array-byte-schreiben.html)

Alex_ITA01 14. Aug 2007 13:41


In Dynamisches Array of Byte schreiben
 
Hallo zusammen,
ich stehe gerade ein wenig auf dem Schlauch :-)

Ich habe ein Array of array of Byte.
Dieses Array soll so aufgebaut sein, dass sich hinter jedem Eintrag in dem Array, eine beliebige anzahl von Bytes befinden kann.

z.B.

Array[0] = 1010011000110001
Array[1] = 1010011000110001
Array[2] = 1010011000110001

Diese Anzahl der Bytes weiß ich aber und ist für jeden Eintrag in dem Array fest.
Ich will im Prinzip hinter jedem Eintrag in dem Array eine Zeile eines Bitmaps (in Byte) hinterlegen.
Mit Scanline eines Bitmaps bekomme ich ja ein Pointer auf PRGBQuad. Diese drei Bytes möchte ich abspeichern und dann auf das nächste Pixel gucken und diese auch wieder abspeichern. Solange eben, bis die Zeile fertig ist. Wenn die Zeile fertig ist, gehe ich in meinem array ein Eintrag weiter.
Ich hoffe ihr wisst was ich meine?!
Ich weiß leider nicht, wie ich in mein ersten Array-Eintrag die komplette Zeile Nummer 1 eines Bitmaps schreibe und wie ich z.B. in mein zweiten Array-Eintrag die komplette Zeile Nummer 2 eines Bitmaps schreibe.

Ich hoffe ihr könnt mir helfen.
MFG Alex

shmia 14. Aug 2007 14:16

Re: In Dynamisches Array of Byte schreiben
 
Du hast dich schon zu früh auf einen bestimmten Lösungsweg eingeschossen ohne deine eigentliche Aufgabe zu schildern.
Willst du Apfelmänchen visualiseren oder Wärmeverteilungen oder irgendwelche Werte im 2-dimensionalen Raum in ein farbcodiertes Bild überführen ?

Alex_ITA01 14. Aug 2007 14:22

Re: In Dynamisches Array of Byte schreiben
 
ja anscheind hast du recht :-)
ich war mal wieder zu voreilig.
ich habe es jetzt so gemacht und es geht auch :-)

Delphi-Quellcode:
lPixel := Bmp.ScanLine[i];   // Zeiger auf die Zeile holen
for j := 0 to Bmp.Width - 1 do
begin
MeinArray[Zeile, (j*3)]  := lPixel.rgbBlue;
MeinArray[Zeile, (j*3)+1] := lPixel.rgbGreen;
MeinArray[Zeile, (j*3)+2] := lPixel.rgbRed;
Inc(lPixel);               // auf zum nächsten Pixel
end;
Danke.
Alex


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:28 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