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;
__________________
РГРТУ - ФВТ - Системы Автоматизированного ПРоектирования. ت