Bei Bitmap32 brauchst du die Verrenkung mit der Scanline nicht mehr zu machen. Die Eigenschaft Pixels[] ist dort anders, und weitaus performanter umgesetzt als bei den alten
VCL Bitmaps. Versuche mal, die Farben so zuzuweisen:
Delphi-Quellcode:
R:=0; G:=0; B:=0; Alpha:=0;
for y:=0 to tmp.Height-1 do
for x:=0 to tmp.Width-1 do
tmp.Pixels[x, y] := Color32(R, G, B, A);
Das zeichnen dann besser auch anders herum: tmp.DrawTo(Canvas.Handle), da Canvas.Draw() den Alpha-Kanal möglicherweise nicht beachtet. Sicher bin ich mir nicht, aber mit der hier genannten Variante bin ich immer gut gefahren.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)