# BlendMode

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

# BlendMode

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/android/graphics/BlendMode "View this page in Java")  

```
class BlendMode
```

|---|---|----------------------------------------------------------------------------------------------------------|
| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)                              |||
| ↳ | [kotlin.Enum](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-enum/index.html)\<[android.graphics.BlendMode](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#)\> ||
|   | ↳ | [android.graphics.BlendMode](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#) |

|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Known Direct Subclasses [BlendMode.CLEAR](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:CLEAR),[BlendMode.COLOR](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:COLOR),[BlendMode.COLOR_BURN](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:COLOR_BURN),[BlendMode.COLOR_DODGE](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:COLOR_DODGE),[BlendMode.DARKEN](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:DARKEN),[BlendMode.DIFFERENCE](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:DIFFERENCE),[BlendMode.DST](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:DST),[BlendMode.DST_ATOP](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:DST_ATOP),[BlendMode.DST_IN](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:DST_IN),[BlendMode.DST_OUT](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:DST_OUT),[BlendMode.DST_OVER](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:DST_OVER),[BlendMode.EXCLUSION](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:EXCLUSION), and 17 others. |---------------------------------------------------------------------------------------------------------------------------|--------| | [BlendMode.CLEAR](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:CLEAR)             | <br /> | | [BlendMode.COLOR](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:COLOR)             | <br /> | | [BlendMode.COLOR_BURN](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:COLOR_BURN)   | <br /> | | [BlendMode.COLOR_DODGE](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:COLOR_DODGE) | <br /> | | [BlendMode.DARKEN](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:DARKEN)           | <br /> | | [BlendMode.DIFFERENCE](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:DIFFERENCE)   | <br /> | | [BlendMode.DST](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:DST)                 | <br /> | | [BlendMode.DST_ATOP](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:DST_ATOP)       | <br /> | | [BlendMode.DST_IN](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:DST_IN)           | <br /> | | [BlendMode.DST_OUT](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:DST_OUT)         | <br /> | | [BlendMode.DST_OVER](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:DST_OVER)       | <br /> | | [BlendMode.EXCLUSION](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:EXCLUSION)     | <br /> | | [BlendMode.HARD_LIGHT](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:HARD_LIGHT)   | <br /> | | [BlendMode.HUE](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:HUE)                 | <br /> | | [BlendMode.LIGHTEN](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:LIGHTEN)         | <br /> | | [BlendMode.LUMINOSITY](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:LUMINOSITY)   | <br /> | | [BlendMode.MODULATE](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:MODULATE)       | <br /> | | [BlendMode.MULTIPLY](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:MULTIPLY)       | <br /> | | [BlendMode.OVERLAY](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:OVERLAY)         | <br /> | | [BlendMode.PLUS](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:PLUS)               | <br /> | | [BlendMode.SATURATION](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:SATURATION)   | <br /> | | [BlendMode.SCREEN](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:SCREEN)           | <br /> | | [BlendMode.SOFT_LIGHT](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:SOFT_LIGHT)   | <br /> | | [BlendMode.SRC](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:SRC)                 | <br /> | | [BlendMode.SRC_ATOP](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:SRC_ATOP)       | <br /> | | [BlendMode.SRC_IN](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:SRC_IN)           | <br /> | | [BlendMode.SRC_OUT](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:SRC_OUT)         | <br /> | | [BlendMode.SRC_OVER](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:SRC_OVER)       | <br /> | | [BlendMode.XOR](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:XOR)                 | <br /> | |

## Summary

|                                                        Enum values                                                        ||
|------------------------------------------------------------------------------------------------------------------------|---|
| [CLEAR](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:CLEAR) <br />             |
| [COLOR](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:COLOR) <br />             |
| [COLOR_BURN](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:COLOR_BURN) <br />   |
| [COLOR_DODGE](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:COLOR_DODGE) <br /> |
| [DARKEN](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:DARKEN) <br />           |
| [DIFFERENCE](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:DIFFERENCE) <br />   |
| [DST](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:DST) <br />                 |
| [DST_ATOP](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:DST_ATOP) <br />       |
| [DST_IN](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:DST_IN) <br />           |
| [DST_OUT](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:DST_OUT) <br />         |
| [DST_OVER](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:DST_OVER) <br />       |
| [EXCLUSION](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:EXCLUSION) <br />     |
| [HARD_LIGHT](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:HARD_LIGHT) <br />   |
| [HUE](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:HUE) <br />                 |
| [LIGHTEN](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:LIGHTEN) <br />         |
| [LUMINOSITY](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:LUMINOSITY) <br />   |
| [MODULATE](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:MODULATE) <br />       |
| [MULTIPLY](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:MULTIPLY) <br />       |
| [OVERLAY](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:OVERLAY) <br />         |
| [PLUS](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:PLUS) <br />               |
| [SATURATION](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:SATURATION) <br />   |
| [SCREEN](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:SCREEN) <br />           |
| [SOFT_LIGHT](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:SOFT_LIGHT) <br />   |
| [SRC](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:SRC) <br />                 |
| [SRC_ATOP](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:SRC_ATOP) <br />       |
| [SRC_IN](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:SRC_IN) <br />           |
| [SRC_OUT](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:SRC_OUT) <br />         |
| [SRC_OVER](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:SRC_OVER) <br />       |
| [XOR](https://developer.android.com/reference/kotlin/android/graphics/BlendMode#ENUM_VALUE:XOR) <br />                 |

## Enum values

### CLEAR

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val CLEAR : BlendMode
```

<br />

Destination pixels covered by the source are cleared to 0.

<br />

\\(\\alpha_{out} = 0\\)

\\(C_{out} = 0\\)  

### COLOR

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val COLOR : BlendMode
```

<br />

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

<br />

### COLOR_BURN

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val COLOR_BURN : BlendMode
```

<br />

Makes destination darker to reflect source.

<br />

\\(\\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst}\\)

\\begin{equation} C_{out} = \\begin{cases} C_{dst} + C_{src}\*(1 - \\alpha_{dst}) \& C_{dst} = \\alpha_{dst} \\\\ \\alpha_{dst}\*(1 - \\alpha_{src}) \& C_{src} = 0 \\\\ \\alpha_{src}\*(\\alpha_{dst} - min(\\alpha_{dst}, (\\alpha_{dst} - C_{dst})\*\\alpha_{src}/C_{src})) + C_{src} \* (1 - \\alpha_{dst}) + \\alpha_{dst}\*(1-\\alpha_{src}) \& otherwise \\end{cases} \\end{equation}  

### COLOR_DODGE

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val COLOR_DODGE : BlendMode
```

<br />

Makes destination brighter to reflect source.

<br />

\\(\\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst}\\)

\\begin{equation} C_{out} = \\begin{cases} C_{src} \* (1 - \\alpha_{dst}) \& C_{dst} = 0 \\\\ C_{src} + \\alpha_{dst}\*(1 - \\alpha_{src}) \& C_{src} = \\alpha_{src} \\\\ \\alpha_{src} \* min(\\alpha_{dst}, C_{dst} \* \\alpha_{src}/(\\alpha_{src} - C_{src})) + C_{src} \*(1 - \\alpha_{dst} + \\alpha_{dst}\*(1 - \\alpha_{src}) \& otherwise \\end{cases} \\end{equation}  

### DARKEN

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val DARKEN : BlendMode
```

<br />

Retains the smallest component of the source and destination pixels.

<br />

\\(\\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst}\\)

\\(C_{out} = (1 - \\alpha_{dst}) \* C_{src} + (1 - \\alpha_{src}) \* C_{dst} + min(C_{src}, C_{dst})\\)  

### DIFFERENCE

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val DIFFERENCE : BlendMode
```

<br />

Subtracts darker from lighter with higher contrast.

<br />

\\begin{equation} \\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst} \\end{equation}

\\begin{equation} C_{out} = C_{src} + C_{dst} - 2 \* min(C_{src} \* \\alpha_{dst}, C_{dst} \* \\alpha_{src}) \\end{equation}  

### DST

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val DST : BlendMode
```

<br />

The source pixels are discarded, leaving the destination intact.

<br />

\\(\\alpha_{out} = \\alpha_{dst}\\)

\\(C_{out} = C_{dst}\\)  

### DST_ATOP

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val DST_ATOP : BlendMode
```

<br />

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

<br />

\\(\\alpha_{out} = \\alpha_{src}\\)

\\(C_{out} = \\alpha_{src} \* C_{dst} + (1 - \\alpha_{dst}) \* C_{src}\\)  

### DST_IN

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val DST_IN : BlendMode
```

<br />

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

<br />

\\(\\alpha_{out} = \\alpha_{src} \* \\alpha_{dst}\\)

\\(C_{out} = C_{dst} \* \\alpha_{src}\\)  

### DST_OUT

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val DST_OUT : BlendMode
```

<br />

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

<br />

\\(\\alpha_{out} = (1 - \\alpha_{src}) \* \\alpha_{dst}\\)

\\(C_{out} = (1 - \\alpha_{src}) \* C_{dst}\\)  

### DST_OVER

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val DST_OVER : BlendMode
```

<br />

The source pixels are drawn behind the destination pixels.

<br />

\\(\\alpha_{out} = \\alpha_{dst} + (1 - \\alpha_{dst}) \* \\alpha_{src}\\)

\\(C_{out} = C_{dst} + (1 - \\alpha_{dst}) \* C_{src}\\)  

### EXCLUSION

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val EXCLUSION : BlendMode
```

<br />

Subtracts darker from lighter with lower contrast.

<br />

\\begin{equation} \\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst} \\end{equation}

\\begin{equation} C_{out} = C_{src} + C_{dst} - 2 \* C_{src} \* C_{dst} \\end{equation}  

### HARD_LIGHT

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val HARD_LIGHT : BlendMode
```

<br />

Makes destination lighter or darker, depending on source.

<br />

\\(\\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst}\\)

\\begin{equation} C_{out} = \\begin{cases} 2\*C_{src}\*C_{dst} \& C_{src}\*(1-\\alpha_{dst}) + C_{dst}\*(1-\\alpha_{src}) + 2\*C_{src} \\leq \\alpha_{src} \\\\ \\alpha_{src}\*\\alpha_{dst}- 2\*(\\alpha_{dst} - C_{dst})\*(\\alpha_{src} - C_{src}) \& otherwise \\end{cases} \\end{equation}  

### HUE

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val HUE : BlendMode
```

<br />

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

<br />

### LIGHTEN

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val LIGHTEN : BlendMode
```

<br />

Retains the largest component of the source and destination pixel.

<br />

\\(\\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst}\\)

\\(C_{out} = (1 - \\alpha_{dst}) \* C_{src} + (1 - \\alpha_{src}) \* C_{dst} + max(C_{src}, C_{dst})\\)  

### LUMINOSITY

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val LUMINOSITY : BlendMode
```

<br />

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

<br />

### MODULATE

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val MODULATE : BlendMode
```

<br />

Multiplies the source and destination pixels.

<br />

\\(\\alpha_{out} = \\alpha_{src} \* \\alpha_{dst}\\)

\\(C_{out} = C_{src} \* C_{dst}\\)  

### MULTIPLY

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val MULTIPLY : BlendMode
```

<br />

Multiplies the source and destination pixels.

<br />

\\(\\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst}\\)

\\(C_{out} = C_{src} \* (1 - \\alpha_{dst}) + C_{dst} \* (1 - \\alpha_{src}) + (C_{src} \* C_{dst})\\)  

### OVERLAY

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val OVERLAY : BlendMode
```

<br />

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

<br />

\\(\\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst}\\)

\\(\\begin{equation} C_{out} = \\begin{cases} 2 \* C_{src} \* C_{dst} \& 2 \* C_{dst} \\lt \\alpha_{dst} \\\\ \\alpha_{src} \* \\alpha_{dst} - 2 (\\alpha_{dst} - C_{src}) (\\alpha_{src} - C_{dst}) \& otherwise \\end{cases} \\end{equation}\\)  

### PLUS

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val PLUS : BlendMode
```

<br />

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

<br />

\\(\\alpha_{out} = max(0, min(\\alpha_{src} + \\alpha_{dst}, 1))\\)

\\(C_{out} = max(0, min(C_{src} + C_{dst}, 1))\\)  

### SATURATION

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val SATURATION : BlendMode
```

<br />

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

<br />

### SCREEN

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val SCREEN : BlendMode
```

<br />

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

<br />

\\(\\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst}\\)

\\(C_{out} = C_{src} + C_{dst} - C_{src} \* C_{dst}\\)  

### SOFT_LIGHT

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val SOFT_LIGHT : BlendMode
```

<br />

Makes destination lighter or darker, depending on source.

<br />

Where \\begin{equation} m = \\begin{cases} C_{dst} / \\alpha_{dst} \& \\alpha_{dst} \\gt 0 \\\\ 0 \& otherwise \\end{cases} \\end{equation}

\\begin{equation} g = \\begin{cases} (16 \* m \* m + 4 \* m) \* (m - 1) + 7 \* m \& 4 \* C_{dst} \\leq \\alpha_{dst} \\\\ \\sqrt m - m \& otherwise \\end{cases} \\end{equation}

\\begin{equation} f = \\begin{cases} C_{dst} \* (\\alpha_{src} + (2 \* C_{src} - \\alpha_{src}) \* (1 - m)) \& 2 \* C_{src} \\leq \\alpha_{src} \\\\ C_{dst} \* \\alpha_{src} + \\alpha_{dst} \* (2 \* C_{src} - \\alpha_{src}) \* g \& otherwise \\end{cases} \\end{equation}

\\begin{equation} \\alpha_{out} = \\alpha_{src} + \\alpha_{dst} - \\alpha_{src} \* \\alpha_{dst} \\end{equation} \\begin{equation} C_{out} = C_{src} / \\alpha_{dst} + C_{dst} / \\alpha_{src} + f \\end{equation}  

### SRC

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val SRC : BlendMode
```

<br />

The source pixels replace the destination pixels.

<br />

\\(\\alpha_{out} = \\alpha_{src}\\)

\\(C_{out} = C_{src}\\)  

### SRC_ATOP

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val SRC_ATOP : BlendMode
```

<br />

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

<br />

\\(\\alpha_{out} = \\alpha_{dst}\\)

\\(C_{out} = \\alpha_{dst} \* C_{src} + (1 - \\alpha_{src}) \* C_{dst}\\)  

### SRC_IN

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val SRC_IN : BlendMode
```

<br />

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

<br />

\\(\\alpha_{out} = \\alpha_{src} \* \\alpha_{dst}\\)

\\(C_{out} = C_{src} \* \\alpha_{dst}\\)  

### SRC_OUT

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val SRC_OUT : BlendMode
```

<br />

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

<br />

\\(\\alpha_{out} = (1 - \\alpha_{dst}) \* \\alpha_{src}\\)

\\(C_{out} = (1 - \\alpha_{dst}) \* C_{src}\\)  

### SRC_OVER

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val SRC_OVER : BlendMode
```

<br />

The source pixels are drawn over the destination pixels.

<br />

\\(\\alpha_{out} = \\alpha_{src} + (1 - \\alpha_{src}) \* \\alpha_{dst}\\)

\\(C_{out} = C_{src} + (1 - \\alpha_{src}) \* C_{dst}\\)  

### XOR

Added in[API level 29](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
enum val XOR : BlendMode
```

<br />

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

<br />

\\(\\alpha_{out} = (1 - \\alpha_{dst}) \* \\alpha_{src} + (1 - \\alpha_{src}) \* \\alpha_{dst}\\)

\\(C_{out} = (1 - \\alpha_{dst}) \* C_{src} + (1 - \\alpha_{src}) \* C_{dst}\\)