From 4.3 Colour spaces:
It is recommended that explicit gamma information also be provided when either the first, second or third method is used, for use by PNG decoders that do not support CICP metadata, full ICC profiles or the sRGB colour space.
Two reasons to not recommend redundant gAMA when a better method is used:
- Only a simple power function, not piecewise, so provides only an approximation of sRGB, PQ, HLG, Adobe RGB and ProPhoto transfer functions, for example
- Spec says to ignore it, either sometimes or always. See:
2.1. cICP
When the cICP chunk is present, decoders that recognize it SHALL ignore the following chunks:
iCCP
gAMA
cHRM
sRGB
2.2 iCCP
When the iCCP chunk is present, PNG decoders that recognize it and are capable of colour management shall ignore the gAMA and cHRM chunks and use the iCCP chunk instead and interpret it according to [ICC]. PNG decoders that are used in an environment that is incapable of full-fledged colour management should use the gAMA and cHRM chunks if present.
2.3 sRGB
When the sRGB chunk is present, it is recommended that decoders that recognize it and are capable of colour management ignore the gAMA and cHRM chunks and use the sRGB chunk instead. Decoders that recognize the sRGB chunk but are not capable of colour management are recommended to ignore the gAMA and cHRM chunks, and use the values given above as if they had appeared in gAMA and cHRM chunks.
In other words, the value for gAMA when used with sRGB is fixed, could be inferred, and so the explicit gAMA adds no value but could be incorrect.
I feel that gAMA (and cHRM) are legacy chunks; they should still be supported but we should revisit recommending adding them when better info is available in other chunks.
From 4.3 Colour spaces:
Two reasons to not recommend redundant
gAMAwhen a better method is used:2.1. cICP
2.2 iCCP
2.3 sRGB
In other words, the value for
gAMAwhen used withsRGBis fixed, could be inferred, and so the explicitgAMAadds no value but could be incorrect.I feel that
gAMA(andcHRM) are legacy chunks; they should still be supported but we should revisit recommending adding them when better info is available in other chunks.