Source-over compositing combines a source layer with a background by retaining the source contribution and the fraction of the background left by the source's alpha channel. For premultiplied alpha colour triples and , the rule isThe W3C compositing specification states this operator explicitly.[ref]
Compositing and Blending Level 1 by World Wide Web Consortium. 2024Candidate Recommendation Draft, §9.1.4, Source Over; §5.1, premultiplied output and output alpha
The output is another colour-and-alpha pair, so it can be combined with another layer.For an original Linear-light RGB example, take red layer A with alpha , green layer B with alpha , and blue layer C with alpha . Place A over B over C. Expanding source-over compositing giveswith . Its straight alpha colour is therefore . The colour triple alone does not describe the partly transparent output; the alpha must accompany it.
The expansion also proves associativity in exact arithmetic: grouping A over B first or grouping B over C first produces those same three terms. Reordering the layers changes the coefficients, so associativity does not permit exchanging front and back. Intermediate rounding can introduce small numerical differences even when the mathematical grouping is equivalent.
For fully transparent source alpha zero, source-over compositing retains the background; for opaque source alpha one, it retains only the source. To interpret the colour arithmetic as a mixture of light contributions, use a common Linear-light RGB space. Stored sRGB codes generally need decoding first.[ref]
Portable Network Graphics (PNG) Specification (Third Edition) by Mark Adler and others. §13.16, alpha channel processing and gamma correction
Apply the equation for the actual storage convention: treating premultiplied alpha samples as straight alpha samples multiplies the source contribution twice. Articles by others on the same topic
There are currently no matching articles.