Bitmap.PixelFormat:=pf8bit;
Bitmap.PixelFormat:=pf8bit;
Доступ к такому формату изображения легко получить, используя TByteArray (определен в SysUtils.PAS):
PByteArray= ^TByteArray;
TByteArray = array[0..32767] of Byte;
(Я думаю (но сам этого не пробовал), что вы сможете получить доступ к pf16bit-изображениям, используя следующие определения в SysUtils.PAS:
PWordArray = ^TWordArray;
TWordArray = array[0..16383] of Word;
Для того, чтобы обработать 8-битное (pf8bit) изображение, используйте конструктор подобный этому, который создает гистограмму изображения:
TYPE
THistogram = ARRAY[0..255] OF INTEGER;
...
VAR
Histogram: THistogram;
i : INTEGER;
j : INTEGER;
Row : pByteArray;
...
FOR i := Low(THistogram) TO High(THistogram) DO
Histogram[i] := 0;
IF Bitmap.PixelFormat = pf8bit THEN
BEGIN
FOR j := Bitmap.Height-1 DOWNTO 0 DO
BEGIN
Row := pByteArray(Bitmap.Scanline[j]);
FOR i := Bitmap.Width-1 DOWNTO 0 DO
BEGIN
INC (Histogram[Row[i]])
END
END
END
...