Expand description
Color blending and blending equations.
Palette offers both OpenGL style blending equations, as well as most of the
SVG composition operators (also common in photo manipulation software). The
composition operators are all implemented in the Compose
and Blend
traits, and ready to use with any appropriate color type:
use palette::{blend::Blend, LinSrgba};
let a = LinSrgba::new(0.2, 0.5, 0.1, 0.8);
let b = LinSrgba::new(0.6, 0.3, 0.5, 0.1);
let c = a.overlay(b);
Blending equations can be defined using the Equations
type, which is
then passed to the blend
function, from the Blend
trait:
use palette::LinSrgba;
use palette::blend::{BlendWith, Equations, Parameter};
let blend_mode = Equations::from_parameters(
Parameter::SourceAlpha,
Parameter::OneMinusSourceAlpha
);
let a = LinSrgba::new(0.2, 0.5, 0.1, 0.8);
let b = LinSrgba::new(0.6, 0.3, 0.5, 0.1);
let c = a.blend_with(b, blend_mode);
Note that blending will use premultiplied alpha, which may result in loss of some color information in some cases. One such case is that a completely transparent resultant color will become black.
Structs§
- A pair of blending equations and corresponding parameters.
- A pair of source and destination parameters.
- Premultiplied alpha wrapper.
Enums§
- A blending equation.
- A blending parameter.
Traits§
- A trait for different ways of mixing colors together.
- A trait for custom blend functions.
- Blending with a custom blend function.
- The Porter Duff composition operators, as described by W3C.
- Alpha masking and unmasking.