Entwickler-Ecke

Multimedia / Grafik - Speicher-Zugriff auf die Pixel eines DeviceContext


Andreas Pfau - Sa 18.08.07 19:05
Titel: Speicher-Zugriff auf die Pixel eines DeviceContext
Hi,

lange her seit meinem letzten Posting hier bei AUQ ( ;) )... nun denn, ich brauche Hilfe!

Ich hab mir eine Bildschirmschoner geschrieben, der mittels pixelweiser Manipulation einen Grafikeffekt erzeugt (ähnlich "Schleifen" von Vista). Dazu habe ich ein Bitmap, welches ich über Speicherzugriffe (TBitmap.ScanLine[]) manipuliere und danach auf den DC des Forms kopiere. Leider ist das sehr langsam.

Da ich das Alte Bild nur überzeichen brauche ich aber eigentlich keine 2 Puffer (Bitmap und DC), und es ist so auch seeeehr langsam, das Buffer-Kopieren nimmt einen Großteil der Rechenzeit ein. Allerdings habe ich auf den DC keinen Speicherzugriff... kann man irgendwie per API auf den Speicherbereich eines DC zugreifen, also auf einen Pointer der die Pixel angibt?

Ansonsten... falls jemand von euch ne bessere Idee hat, das Proggi zu beschleunigen...


BenBE - Sa 18.08.07 20:33

Erzeuge dein Tmp-Bitmap mit CreateCompatibleDC, damit sollte das Konvertieren zwischen verschiedenen Pixelformaten beim Übertragen vom Temp--BMP in den DC vermieden werden.

Ferner: Wie kopierst Du? DrawBitmap, BitBlt oder andere Methode?