1) Сначала я перевожу RGB в линейный RGB:
2) Затем линейный RGB перевожу в линейный серый:Код:LinRGB := RGB / 255;
if LinRGB <= 0.04045 then
LinRGB := LinRGB / 12.92
else
LinRGB := Power(((LinRGB + 0.055)/1.055), 2.4);
3) Затем линейный серый перевожу просто в серый:Код:LinGray := 0.212655 * LinRGB.R + 0.715158 * LinRGB.G + 0.072187 * LinRGB.B;
Код:if LinGray <= 0.0031308 then
Result := LinGray * 12.92
else
Result := 1.055 * Power(LinGray, 1.0/2.4) - 0.055;
Result := Result * 255;

