DELPHI FAQ: Bitmap.PixelFormat:=pf24bit;


Bitmap.PixelFormat:=pf24bit;
Previous  Home  Next



Для pf24bit-изображений необходимо определить:



CONST

PixelCountMax = 32768
;

TYPE

pRGBArray = ^TRGBArray;
TRGBArray = ARRAY
[0..PixelCountMax-1OF TRGBTriple;


Примечание: TRGBTriple определен в модуле Windows.PAS.

Для того, чтобы к существующему 24-битному изображению иметь доступ как к изображению, созданному с разрешением 3 байта на пиксел, сделайте следующее:

...
VAR

i           :  INTEGER; 
j           :  INTEGER; 
RowOriginal :  pRGBArray; 
RowProcessed:  pRGBArray; 
BEGIN

IF   OriginalBitmap.PixelFormat <> pf24bit THEN  
RAISE EImageProcessingError.Create('GetImageSpace:  ' + 
'Изображение должно быть 24-х битным.'); 
{Шаг через каждую строчку изображения.} 
FOR j := OriginalBitmap.Height-1 DOWNTO 0 DO 
BEGIN 
RowOriginal  := pRGBArray(OriginalBitmap.Scanline[j]); 
RowProcessed := pRGBArray(ProcessedBitmap.Scanline[j]); 
FOR i := OriginalBitmap.Width-1 DOWNTO 0 DO 
BEGIN 
//           Доступ к RGB-цветам отдельных пикселей должен осуществляться следующим образом: 
//           RowProcessed[i].rgbtRed     := RowOriginal[i].rgbtRed; 
//           RowProcessed[i].rgbtGreen   := RowOriginal[i].rgbtGreen; 
//           RowProcessed[i].rgbtBlue    := RowOriginal[i].rgbtBlue; 
END 
END 
END

...



Взято с www.delphiworld.narod.ru








EOMY TOP 100      Рейтинг@Mail.ru      Rambler's Top100