(Это приложение является
информативным, а не формальным)
See the Gamma
Tutorial in the PNG specification [12] if you aren't
already familiar with gamma issues.
In the computation, UAs displaying on a CRT may assume
an ideal CRT and ignore any effects on apparent gamma caused by
dithering. That means the minimal handling they need to do on
current platforms is:
PC using MS-Windows
none
Unix using X11
none
Mac using QuickDraw
apply gamma 1.39 [13]
(ColorSync-savvy applications may simply pass the sRGB
ICC profile [14]
to ColorSync to perform correct color correction)
SGI using X
apply the gamma value from /etc/config/system.glGammaVal
(the default value being 1.70; applications running on
Irix 6.2 or above may simply pass the sRGB ICC profile to
the color management system)
NeXT using NeXTStep
apply gamma 2.22
"Applying gamma" means that each of the
three R, G and B must be converted to R'=Rgamma,
G'=Ggamma, G'=Bgamma,
before handing to the OS.
This may rapidly be done by building a 256-element
lookup table once per browser invocation thus:
for i := 0 to 255 do
raw := i / 255;
corr := pow (raw, gamma);
table[i] := trunc (0.5 + corr * 255.0)
end
which then avoids any need to do transcendental math
per color attribute, far less per pixel.