Merging functions
Input type | Output type |
color, color | color |
The merging functions reproduce all layer merge modes. They accept two color parameters. The second color is merged onto the first color and the resulting color is returned. So, the first color is treated as the background, and the second color as the “layer” being merged. The alpha value of the result is always the alpha value of the second color.
The following functions are available:
mergenormal | Directly returns the second color. |
mergemultiply | Multiplies the first color with the second color. The result is always a darker color. |
mergescreen | Multiplies the inverse of the first color with the inverse of the second color, and returns the inverse of the result. This is always a lighter color. |
mergeoverlay | Multiplies or screens the colors, depending on the first color. |
mergehardlight | Multiplies or screens the colors, depending on the second color. |
mergesoftlight | Darkens or lightens the colors, depending on the second color. |
mergedarken | Returns the darkest of the two colors. |
mergelighten | Returns the lightest of the two colors. |
mergedifference | Returns the difference between the two colors. |
mergehue | Returns the hue of the second color, and the saturation and luminance of the first color. |
mergesaturation | Returns the saturation of the second color, and the hue and luminance of the first color. |
mergecolor | Returns the hue and saturation of the second color, and the luminance of the first color. |
mergeluminance | Returns the luminance of the second color, and the hue and saturation of the first color. |
mergeaddition | Directly adds the two colors, limiting the result at white (1, 1, 1). |
mergesubtraction | Directly subtracts the second color from the first color, limiting the result at black (0, 0, 0). |
mergehsladdition | Adds the colors using the HSL color model. |
mergered | Returns the red component of the second color, and the green and blue components of the first color. |
mergegreen | Returns the green component of the second color, and the red and blue components of the first color. |
mergeblue | Returns the blue component of the second color, and the red and green components of the first color. |
With these functions, you can reproduce how layers are merged. Use the following formula to merge t on top of b with opacity o:
compose(b, blend(t, mergeX(b, t), alpha(b)), o)
The merging functions are often used as color user functions. See Parameter blocks.
See Also
blend function
compose function
Writing direct coloring algorithms