Du meinst Graustufen, nicht schwarz-weiß, oder?
Schneller als Pixel[] ist der Zugriff über Scanline, und das um Größenordnungen.
Und selbst das kann man noch verbessern, indem man die Zahl der Scanline-Aufrufe reduziert, denn auch die sind relativ aufwändig.
Ich habe darüber mal vor Urzeiten geblogt:
https://blog.dummzeuch.de/2019/12/12...lls-in-delphi/
Wobei es im Blog Post allerdings um 24 Bit Farbbitmaps geht, nicht um 8 Bit Graustufen.