2D-Bilder aus 3D-Matrix

ich möchte 2D-Bilder (Grauwertbilder) aus einer 3D-Matrix anzeigen (Hauptebenen für x=const, y=const bzw.z=const).
(Matrix[x=1…512;y=1…512;z=1…100]).
Wenn ich Martixelement für Matrixelement in Pixel eines Image
auslese dauert es ziemlich lange und der Rechner wird bei häufigen „Bildwechsel“ nicht fertig. Wie stellt man das am besten an, daß der Rechner damit gut fertig wird ?

Vielen Dank !

E. B.

Erstelle die eine Bitmap (TBitmap) und hole dir ein Handle auf dessen Canvas. Dann greife entweder mit dem API-Befehl SetPixel(DC,x,y,col) auf die Pixel zu oder schreibe mit Scanline eine ganze Pixel-Reihe oder kopiere eine 3D-Matrix-Ebene direkt in den Speicherbereich mit den Pixeldaten der Bitmap (das ist abhängig davon, welche Ebene des „Würfels“ du setzen willst: die erste Dimension liegt direkt linear im Speicher, und das Zeile für Zeile der 2. Dimension, und das wiederholt sich für die Ebenen der 3. Dimension. Also für z=const könntest du die komplette Ebene kopieren, für y=const könntest du Zeilenweise kopieren und für x=const mußt du Pixelweise kopieren). Natürlich kannst du auch IMMER Pixelweise kopieren. Du sparts durch den API-Befehl schonmal viel Zeit, und weil du ein (Speicher-)Bitmap verwendest, das nicht jedesmal versucht, sich neu zu zeichnen, sparst du nochmal viel, viel Zeit. Zum Abschluß kopierst du die Bitmap einfach ins Image. Das könntest du auch noch mit BitBlt machen, das ist etwas schneller als die Canvas-Methoden.

Ach ja, bei unklarheiten studiere erst mal in Ruhr die API - Online-Hilfe zu „SetPixel“, „ScanLine“, „CopyMem“, „Bitmap“ und „BitBlt“. Wenn du dann noch konkrete Fragen hast, gibt’s nochmal eine konkretere Antwort.

Gruß
Jochen