Added in API level 29

BlendMode


class BlendMode

Summary

Enum values

CLEAR

Added in API level 29
enum val CLEAR : BlendMode

Destination pixels covered by the source are cleared to 0.

αout=0

Cout=0

COLOR

Added in API level 29
enum val COLOR : BlendMode

Replaces hue and saturation of destination with hue and saturation of source, leaving luminosity unchanged.

COLOR_BURN

Added in API level 29
enum val COLOR_BURN : BlendMode

Makes destination darker to reflect source.

αout=αsrc+αdstαsrcαdst

Cout={Cdst+Csrc(1αdst)Cdst=αdstαdst(1αsrc)Csrc=0αsrc(αdstmin(αdst,(αdstCdst)αsrc/Csrc))+Csrc(1αdst)+αdst(1αsrc)otherwise

COLOR_DODGE

Added in API level 29
enum val COLOR_DODGE : BlendMode

Makes destination brighter to reflect source.

αout=αsrc+αdstαsrcαdst

Cout={Csrc(1αdst)Cdst=0Csrc+αdst(1αsrc)Csrc=αsrcαsrcmin(αdst,Cdstαsrc/(αsrcCsrc))+Csrc(1αdst+αdst(1αsrc)otherwise

DARKEN

Added in API level 29
enum val DARKEN : BlendMode

Retains the smallest component of the source and destination pixels.

αout=αsrc+αdstαsrcαdst

Cout=(1αdst)Csrc+(1αsrc)Cdst+min(Csrc,Cdst)

DIFFERENCE

Added in API level 29
enum val DIFFERENCE : BlendMode

Subtracts darker from lighter with higher contrast.

αout=αsrc+αdstαsrcαdst

Cout=Csrc+Cdst2min(Csrcαdst,Cdstαsrc)

DST

Added in API level 29
enum val DST : BlendMode

The source pixels are discarded, leaving the destination intact.

αout=αdst

Cout=Cdst

DST_ATOP

Added in API level 29
enum val DST_ATOP : BlendMode

Discards the destination pixels that are not covered by source pixels. Draws remaining destination pixels over source pixels.

αout=αsrc

Cout=αsrcCdst+(1αdst)Csrc

DST_IN

Added in API level 29
enum val DST_IN : BlendMode

Keeps the destination pixels that cover source pixels, discards the remaining source and destination pixels.

αout=αsrcαdst

Cout=Cdstαsrc

DST_OUT

Added in API level 29
enum val DST_OUT : BlendMode

Keeps the destination pixels that are not covered by source pixels. Discards destination pixels that are covered by source pixels. Discards all source pixels.

αout=(1αsrc)αdst

Cout=(1αsrc)Cdst

DST_OVER

Added in API level 29
enum val DST_OVER : BlendMode

The source pixels are drawn behind the destination pixels.

αout=αdst+(1αdst)αsrc

Cout=Cdst+(1αdst)Csrc

EXCLUSION

Added in API level 29
enum val EXCLUSION : BlendMode

Subtracts darker from lighter with lower contrast.

αout=αsrc+αdstαsrcαdst

Cout=Csrc+Cdst2CsrcCdst

HARD_LIGHT

Added in API level 29
enum val HARD_LIGHT : BlendMode

Makes destination lighter or darker, depending on source.

αout=αsrc+αdstαsrcαdst

Cout={2CsrcCdstCsrc(1αdst)+Cdst(1αsrc)+2Csrcαsrcαsrcαdst2(αdstCdst)(αsrcCsrc)otherwise

HUE

Added in API level 29
enum val HUE : BlendMode

Replaces hue of destination with hue of source, leaving saturation and luminosity unchanged.

LIGHTEN

Added in API level 29
enum val LIGHTEN : BlendMode

Retains the largest component of the source and destination pixel.

αout=αsrc+αdstαsrcαdst

Cout=(1αdst)Csrc+(1αsrc)Cdst+max(Csrc,Cdst)

LUMINOSITY

Added in API level 29
enum val LUMINOSITY : BlendMode

Replaces luminosity of destination with luminosity of source, leaving hue and saturation unchanged.

MODULATE

Added in API level 29
enum val MODULATE : BlendMode

Multiplies the source and destination pixels.

αout=αsrcαdst

Cout=CsrcCdst

MULTIPLY

Added in API level 29
enum val MULTIPLY : BlendMode

Multiplies the source and destination pixels.

αout=αsrc+αdstαsrcαdst

Cout=Csrc(1αdst)+Cdst(1αsrc)+(CsrcCdst)

OVERLAY

Added in API level 29
enum val OVERLAY : BlendMode

Multiplies or screens the source and destination depending on the destination color.

αout=αsrc+αdstαsrcαdst

Cout={2CsrcCdst2Cdst<αdstαsrcαdst2(αdstCsrc)(αsrcCdst)otherwise

PLUS

Added in API level 29
enum val PLUS : BlendMode

Adds the source pixels to the destination pixels and saturates the result.

αout=max(0,min(αsrc+αdst,1))

Cout=max(0,min(Csrc+Cdst,1))

SATURATION

Added in API level 29
enum val SATURATION : BlendMode

Replaces saturation of destination saturation hue of source, leaving hue and luminosity unchanged.

SCREEN

Added in API level 29
enum val SCREEN : BlendMode

Adds the source and destination pixels, then subtracts the source pixels multiplied by the destination.

αout=αsrc+αdstαsrcαdst

Cout=Csrc+CdstCsrcCdst

SOFT_LIGHT

Added in API level 29
enum val SOFT_LIGHT : BlendMode

Makes destination lighter or darker, depending on source.

Where m={Cdst/αdstαdst>00otherwise

g={(16mm+4m)(m1)+7m4Cdstαdstmmotherwise

f={Cdst(αsrc+(2Csrcαsrc)(1m))2CsrcαsrcCdstαsrc+αdst(2Csrcαsrc)gotherwise

αout=αsrc+αdstαsrcαdst

Cout=Csrc/αdst+Cdst/αsrc+f

SRC

Added in API level 29
enum val SRC : BlendMode

The source pixels replace the destination pixels.

αout=αsrc

Cout=Csrc

SRC_ATOP

Added in API level 29
enum val SRC_ATOP : BlendMode

Discards the source pixels that do not cover destination pixels. Draws remaining source pixels over destination pixels.

αout=αdst

Cout=αdstCsrc+(1αsrc)Cdst

SRC_IN

Added in API level 29
enum val SRC_IN : BlendMode

Keeps the source pixels that cover the destination pixels, discards the remaining source and destination pixels.

αout=αsrcαdst

Cout=Csrcαdst

SRC_OUT

Added in API level 29
enum val SRC_OUT : BlendMode

Keeps the source pixels that do not cover destination pixels. Discards source pixels that cover destination pixels. Discards all destination pixels.

αout=(1αdst)αsrc

Cout=(1αdst)Csrc

SRC_OVER

Added in API level 29
enum val SRC_OVER : BlendMode

The source pixels are drawn over the destination pixels.

αout=αsrc+(1αsrc)αdst

Cout=Csrc+(1αsrc)Cdst

XOR

Added in API level 29
enum val XOR : BlendMode

Discards the source and destination pixels where source pixels cover destination pixels. Draws remaining source pixels.

αout=(1αdst)αsrc+(1αsrc)αdst

Cout=(1αdst)Csrc+(1αsrc)Cdst