Alpha compositing combines image contributions using their colour values and alpha channels. The source-over compositing rule places a source layer over a destination while retaining the destination's contribution where the source is partly transparent. Other compositing rules select different contributions; the alpha values alone do not identify the chosen rule.[ref]
Compositing and Blending Level 1 by World Wide Web Consortium. 2024Candidate Recommendation Draft, §5.1 and §9.1.4, Source Over
Write for source and background colour triples, with alpha values . In premultiplied alpha form, and . Then source-over compositing givesWhen , the corresponding straight alpha colour is . The output can remain partly transparent, ready to be combined with another background.
For an original Linear-light RGB example, place red with over blue with . The result isReversing the layers instead gives and , with the same output alpha. Layer order changes the colour even when it leaves the output alpha unchanged.
If the background is opaque, and , so the rule reduces to . For a physical light-mixture interpretation, carry out that arithmetic in Linear-light RGB; encoded sRGB values first need their appropriate conversion.[ref]
Portable Network Graphics (PNG) Specification (Third Edition) by Mark Adler and others. §13.16, alpha channel processing and gamma correction
Separately specify whether stored colour samples already contain their alpha multiplier, so that the source contribution is not multiplied twice.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.