Blend modes

From Wikipedia, the free encyclopedia
Jump to: navigation, search

Blend modes (or Mixing modes[1]) in digital image editing are used to determine how two layers are blended into each other. The default blend mode in most applications is simply to hide the lower layer with whatever is present in the top layer. However, as each pixel has a numerical representation, a large number of ways to blend two layers is possible. Note that the top layer is not necessarily called a "layer" in the application. It may be applied with a painting or editing tool.

Most graphics editing programs, like Adobe Photoshop and GIMP, allow the user to modify the basic blend modes - for example by applying different levels of opacity to the top picture.

Normal blend mode[edit]

This is the standard blend mode which uses the top layer alone,[2] without mixing its colors with the layer beneath it.[examples needed]

f(a, b) = b

Where a is the value of a color channel in the underlying layer, and b is that of the corresponding channel of the upper layer. The result is most typically merged into the bottom layer using "simple" (b over a) alpha compositing, but other Porter-Duff operations are possible.[2] The compositing step results in the top layer's shape, as defined by its alpha channel, appearing over the bottom layer.

Dissolve[edit]

The dissolve mode takes random pixels from both layers. With high opacity, most pixels are taken from the top layer. With low opacity most pixels are taken from the bottom layer. No anti-aliasing is used with this blend mode, so the pictures may look grainy and harsh.

Multiply and Screen[edit]

Multiply and Screen blend modes are basic blend modes for darkening and lightening images respectively. There are several different combinations of them like Overlay or Soft Light (mentioned further down) and Vivid Light, Linear Light and Pin Light.

Multiply[edit]

Multiply blend mode multiplies the numbers for each pixel of the top layer with the corresponding pixel for the bottom layer. The result is a darker picture.

f(a,b) = ab, where a is the base layer value and b is the top layer value.

This mode is symmetric: exchanging two layers does not change the result. If the two layers contain the same picture, multiply blend mode is equivalent to a quadratic curve, or gamma correction with γ=2. (For image editing it is sometimes more convenient to simply go to the Curves dialog of the software, as it gives more flexibility in the shape of the curves. Or one can use Levels dialogue — the middle number is usually 1/γ, so one can just type 0.5.)

If one layer contains a homogeneous color, for example the gray color (0.8, 0.8, 0.8), multiply blend mode is equivalent to a curve which simply is a straight line. This is also equivalent to using this gray value as opacity when doing “normal mode” blend with black bottom layer.

Screen[edit]

With Screen blend mode the values of the pixels in the two layers are inverted, multiplied, and then inverted again. This yields the opposite effect to multiply. The result is a brighter picture.

f(a,b) = 1 - (1 - a)(1 - b), where a is the base layer value and b is the top layer value.

This mode is symmetric: exchanging two layers does not change the result. If one layer contains a homogeneous gray, Screen blend mode is equivalent to using this gray value as opacity when doing “normal mode” blend with white top layer.

Overlay[edit]

Overlay combines Multiply and Screen blend modes.[3] The parts of the top layer where base layer is light become lighter, the parts where the base layer is dark become darker. An overlay with the same picture looks like an S-curve.

 f(a,b) =
    \begin{cases}
      2 a b,           &\mbox{if } a < 0.5 \\
      1 - 2 ( 1 - a ) ( 1 - b ), &\mbox{otherwise}
    \end{cases}

where a is the base layer value and b is the top layer value.

Depending on the value a of the base layer, one gets a linear interpolation between black (a=0), the top layer (a=0.5), and white (a=1).

Hard Light[edit]

Hard Light combines Multiply and Screen blend modes. Equivalent to Overlay, but with the bottom and top images swapped.

Soft Light[edit]

Comparison of soft light blend modes

This is a softer version of Hard Light. Applying pure black or white does not result in pure black or white[examples needed].

There are a variety of different methods of applying a soft light blend.[4] All the flavors produce the same result when the top layer is pure black; same for when the top layer is pure neutral gray. The Photoshop and illusions.hu flavors also produce the same result when the top layer is pure white (the differences between these two are in how one interpolates between these 3 results).

These three results coincide with gamma correction of the bottom layer with γ=2 (for top black), unchanged bottom layer (or, what is the same, γ=1) (for top neutral gray), and γ=0.5 (for top white).

The formula used by Photoshop has a discontinuity of local contrast (was[dubious ]), and other formulas correct it. Photoshop's formula is:[5]

 f_{photoshop}(a,b) =
    \begin{cases}
      2 a b + a^2 (1 - 2 b),           &\mbox{if } b < 0.5 \\
      2 a (1 - b) + \sqrt{a} (2 b - 1), &\mbox{otherwise}
    \end{cases}

where a is the base layer value and b is the top layer value. Depending on b, one gets a linear interpolation between three gamma corrections: γ=2 (for b=0), γ=1 (for b=0.5), and γ=0.5 (for b=1).

Pegtop's formula[5] is smoother and corrects the discontinuity[better source needed] at b = 0.5:

f_{pegtop}(a,b) = (1-2b)a^2 + 2ba.

This is a linear interpolation between gamma correction with γ=2 (for b=0), and a certain tonal curve (for b=1). (The latter curve is equivalent to applying γ=2 to the negative of image.)

A third formula defined by illusions.hu[6] corrects the discontinuity in a different way, doing gamma correction with γ depending on b:

f_{illusions.hu}(a, b) = a^{( 2^{2(0.5 - b)} )}

For b=0, one still gets γ=2, for b=0.5 one gets γ=1, for b=1 one gets γ=0.5, but it is not a linear interpolation between these 3 images.

The formula specified by recent W3C drafts[2] for SVG and Canvas is mathematically equivalent to the Photoshop formula with a small variation where b≥0.5 and a≤0.25:


f_{w3c}(a, b) =
\begin{cases}
  a - (1 - 2 b) \cdot a \cdot (1 - a)
    & \text{if } b \leq 0.5 \\
  a + (2 b - 1) \cdot (g_{w3c}(a) - a)
            & \text{otherwise}
\end{cases}

where


g_{w3c}(a) =
\begin{cases}
  ((16 a - 12) \cdot a + 4) \cdot a
    & \text{if } a \leq 0.25 \\
  \sqrt{a}
    & \text{otherwise}
\end{cases}
.

This is also the formula used by Cairo,[7] and in earlier PDF documentation.[8]

It is still a linear interpolation between 3 images for b=0, 0.5, 1. But now the image for b=1 is not γ=0.5, but the result of a tonal curve which differs from the curve of γ=0.5 for small values of a: while gamma correction with γ=0.5 may increase the value of a many times, this new curve limits the increase of a by coefficient 4.

Dodge and burn[edit]

Further information: Dodging and burning

Dodge and burn change the lightness of the pictures, inspired by the dodging and burning performed in a darkroom. Dodging lightens an image, while burning darkens it. Dodging the image is the same as burning its negative (and vice versa).

  • Dodge modes:
    • The Screen blend mode inverts both layers, multiplies them, and then inverts that result.
    • The Color Dodge blend mode divides the bottom layer by the inverted top layer. This lightens the bottom layer depending on the value of the top layer: the brighter the top layer, the more its color affects the bottom layer. Blending with white gives white. Blending with black does not change the image. The operation is not invertible due to possible clipping of highlights. (The clipping happens in the same area as for the Linear Dodge.) When top layer contains a homogeneous color, this effect is equivalent to changing the white point to the inverted color. The perceived contrast increases when there is no clipping.
    • The Linear Dodge blend mode simply sums the values in the two layers. Blending with white gives white. Blending with black does not change the image. When top layer contains a homogeneous color, this effect is equivalent to changing the output black point to this color, and (input) white point to the inverted color. The contrast is decreased when there is no clipping.
    • Divide: Same as "Color Dodge", but blending with white does not change the image.
  • Burn modes:
    • The Multiply mode simply multiplies each component in the two layers.
    • The Color Burn mode divides the inverted bottom layer by the top layer, and then inverts the result. This darkens the top layer increasing the contrast to reflect the color of the bottom layer. The darker the bottom layer, the more its color is used. Blending with white produces no difference. When top layer contains a homogeneous color, this effect is equivalent to changing the black point to the inverted color. The operation is not invertible due to possible clipping of shadows. The clipping happens in the same area as for the Linear Burn.
    • The Linear Burn mode sums the value in the two layers and subtracts 1. This is the same as inverting each layer, adding them together (as in Linear Dodge), and then inverting the result. Blending with white leaves the image unchanged.
  • Vivid Light: this blend mode combines Color Dodge and Color Burn (rescaled so that neutral colors become middle gray). Dodge applies when values in the top layer are lighter than middle gray, and burn to darker values. The middle gray is the neutral color. When color is lighter than this, this effectively moves the white point of the bottom layer down by twice the difference; when it is darker, the black point is moved up by twice the difference. (The perceived contrast increases.)
  • Linear Light: this blend mode combines Linear Dodge and Linear Burn (rescaled so that neutral colors become middle gray). Dodge applies to values of top layer lighter than middle gray, and burn to darker values. The calculation simplifies to the sum of bottom layer and twice the top layer, subtract 1. The contrast decreases.
  • Subtract: this blend mode sums the value in the two layers and subtracts 1. Unlike Linear Burn, blending with white affects the image.

Simple arithmetic blend modes[edit]

Divide[edit]

This blend mode simply divides pixel values of one layer with the other, but it's useful for brightening photos if the color is on grey or less.

Addition[edit]

This blend mode simply adds pixel values of one layer with the other. In case of values above 1 (in the case of RGB), white is displayed. Since this always produces the same or lighter colors than the input it is also known as 'plus lighter'. A variant subtracts 1 from all end values, with values below 0 becoming black; this mode is known as 'plus darker'.

Subtract[edit]

This blend mode simply subtracts pixel values of one layer with the other. In case of negative values, black is displayed.

Difference[edit]

Difference subtracts the bottom layer from the top layer or the other way round, to always get a positive value. Blending with black produces no change, as values for all colors are 0. (The RGB value for black is 0,0,0). Blending with white inverts the picture.

One of the main utilities for this is during the editing process, when it can be used to verify alignment of pictures with similar content. Exclusion is a very similar blend mode with lower contrast.

Darken Only[edit]

Darken Only creates a pixel that retains the smallest components of the foreground and background pixels. If the foreground pixel has the components r1, g1, and b1, and the background has r2, g2, b2, the resultant pixel is

 [min(r_1, r_2), min(g_1, g_2), min(b_1, b_2)] [9]

Lighten Only[edit]

Lighten Only has the opposite action of Darken Only. It selects the maximum of each component from the foreground and background pixels. The mathematical expression for Lighten Only is

 [max(r_1, r_2), max(g_1, g_2), max(b_1, b_2)] [9]

Boolean arithmetic blend modes[edit]

Rarely, applications such as Aviary's Peacock will supply boolean arithmetic blend modes. These combine the binary expansion of the hexadecimal color at each pixel of two layers using boolean logic gates. The top layer's alpha controls interpolation between the lower layer's image and the combined image.

Hue, saturation and luminosity[edit]

Photoshop’s hue, saturation, color, and luminosity blend modes are based on a color space with dimensions that the article HSL and HSV calls hue, chroma, and luma. Note that this space is different from both HSL and HSV, and only the hue dimension is shared between the three; see that article for details.

Unlike all of the previous blend modes described, which operate on each image channel independently, in each of these modes, some dimensions are taken from the bottom layer, while the remainder are taken from the top layer. Colors which end up out of gamut are brought inside by mapping along lines of constant hue and luma. This makes the operations uninvertible – after a top layer has been applied in one of these blend modes, it is in some cases impossible to restore the appearance of the original (bottom) layer, even by applying a copy of the bottom layer in the same blend mode above both.

  • The Hue blend mode preserves the luma and chroma of the bottom layer, while adopting the hue of the top layer.
  • The Saturation blend mode preserves the luma and hue of the bottom layer, while adopting the chroma of the top layer.
  • The Color blend mode preserves the luma of the bottom layer, while adopting the hue and chroma of the top layer.
  • The Luminosity blend mode preserves the hue and chroma of the bottom layer, while adopting the luma of the top layer.

Because these blend modes are based on a color space which is much closer than RGB to perceptually relevant dimensions, it can be used to correct the color of an image without altering perceived lightness, and to manipulate lightness contrast without changing the hue or chroma. The Luminosity mode is commonly used for image sharpening, because human vision is much more sensitive to fine-scale lightness contrast than color contrast. See Contrast (vision).

Few editors other than Photoshop implement this same color space for their analogs of these blend modes.[citation needed] Instead, they typically base their blend modes on HSV (aka HSB) or HSL. Blend modes based on HSV are typically labeled hue, saturation, and brightness. Using HSL or HSV has the advantage that most operations become invertible (at least in theory), but the disadvantage that the dimensions of HSL and HSV are not as perceptually relevant as the dimensions of the space Photoshop uses.

Relation to masking[edit]

The result of applying several of these modes depends linearly on the pixel level of the top layer. In such cases, when the top layer is purely black, one gets a certain transformation of the bottom layer (which may be just a purely black or purely white image). When the top layer is purely white, one gets another such transformation. The intermediate gray values are described above using the opacity slider on the second transformation.

In such cases, applying the blending mode is equivalent to Normal blending:

  • Apply two transformations to the bottom layers;
  • Use the result of the first transformation as the new bottom layer;
  • Put the result of the second transformation as the new top layer;
  • Use the initial top layer as the mask on the new top layer.

(This assumes that the mask may be colored, with its R,G,B channels masking the channels of the image independently. Many image manipulation programs do not allow such masks; for them this equivalence holds only for grayscale top layers.)

See also[edit]

References[edit]