Bitmap.PixelFormat:=pf8bit; |
Previous Top Next |
Доступ к такому формату изображения легко получить, используя TByteArray (определен в SysUtils.PAS):
Code: |
PByteArray = ^TByteArray; TByteArray = array[0..32767] of Byte; |
(Я думаю (но сам этого не пробовал), что вы сможете получить доступ к pf16bit-изображениям, используя следующие определения в SysUtils.PAS:
Code: |
PWordArray = ^TWordArray; TWordArray = array[0..16383] of Word; |
Для того, чтобы обработать 8-битное (pf8bit) изображение, используйте конструктор подобный этому, который создает гистограмму изображения:
Code: |
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 ... |
Взято с http://delphiworld.narod.ru