Показать сообщение отдельно
  #2  
Старый 21.11.2010, 21:21
Аватар для KOOL
KOOL KOOL вне форума
Активный
 
Регистрация: 06.01.2008
Адрес: Рязань
Сообщения: 306
Версия Delphi: 2009
Репутация: 6150
По умолчанию

Просто, но медленно:
Код:
var bmp:TBitmap;
     value:TColor
...
value:=bmp.Canvas.Pixels[x, y];
Не так просто, но быстро:
Код:
function GetPixel(Bitmap: TBitmap; X,Y: Integer): TColor;
var b:PByteArray;
    p:PRGBTriple;
    q:PRGBQuad;
begin
  Result:=0;
  if Bitmap.PixelFormat=pf8bit then
    begin
      b := pByteArray(Bitmap.ScanLine[Y]);
      Result:=RGB(b[X], b[X], b[X]);
    end
  else if Bitmap.PixelFormat=pf24bit then
    begin
      DWORD(p) := DWORD(Bitmap.ScanLine[Y]) + (X * SizeOf(TRGBTriple));
      Result:=RGB(p.rgbtRed, p.rgbtGreen, p.rgbtBlue);
    end
  else if Bitmap.PixelFormat=pf32bit then
    begin
      DWORD(q) := DWORD(Bitmap.ScanLine[Y]) + (X * SizeOf(TRGBQuad));
      Result:=RGB(q.rgbRed, q.rgbGreen, q.rgbBlue);
      //Result:=RGB(q.rgbRed, q.rgbGreen, q.rgbBlue) or (q.rgbReserved shl 24); //Если нужен альфа-канал
    end;
end;
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت
Ответить с цитированием