Bezüglich der Frage nach der Geschwindigkeit... der Zugriff auf Canvas.Pixels ist so ziemlich das Langsamste, das du machen kannst... und das auch noch in einer inneren Schleife mehrfach.
Mit dem schon genannten TMapAccess kannst du auch in FMX Scanline nutzen und in
VCL TBitmap sowieso. Das sollte daher recht ähnlich sein und ist zumindest für
VCL deutlich schneller als Pixels. Bei FMX mag der Unterschied geringer sein.