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