ScanLine. Самый быстрый из нативных способов.
Еще быстрее только если через API строить картинку сразу в памяти а потом еще переделать в битмап. Но оно сложно и тебе не нужно. ScanLine'а должно хватить.
Ну и зачем делать какие-то преобразования. открываешь файл как бинарник и вычитываешь 3 байта. Из них формируешь цвет, т.к. компьютеру все-равно в каком виде это будет в середине. Ему выжны собственно значения, так что никаких преобразований не надо.
Код:
var
Stream : TFileStream;
r, g, b : Byte;
c : TColor;
begin
Stream := TFileStream.Create(...);
...
Stream.ReadBuffer(r,SizeOf(Byte));
Stream.ReadBuffer(g,SizeOf(Byte));
Stream.ReadBuffer(b,SizeOf(Byte));
c := RGBToColor(r,g,b);
...
end;