Das wird es wahrscheinlich sein @dominikkv, dein Bitmap hat keine 24/32 Bit.
bmp.PixelFormat := pf32Bit;

array[0..3] of byte
bmp.PixelFormat := pf24Bit;

array[0..2] of byte
Mit weniger Bits solltest du nicht rumhantieren, da du sonst die Werte erst "mühsam" in
RGB-Werte umrechnen musst. Also schau mal, dass du bei dir
bmp.PixelFormat := pf24Bit;
aufrufst