---
title: "Define blend modes in PDF annotation on iOS | Nutrient SDK"
canonical_url: "https://www.nutrient.io/guides/ios/annotations/annotation-blend-modes/"
md_url: "https://www.nutrient.io/guides/ios/annotations/annotation-blend-modes.md"
last_updated: "2026-06-09T10:30:03.914Z"
description: "Discover how to improve annotation legibility using blend modes in Nutrient iOS SDK. Learn about supported modes and their applications."
---

# Defining annotation blend modes on iOS

Nutrient iOS SDK has the ability to set blend modes for annotations. Blend modes let you decide how different layers of color will interact with each other and what the end result will be. One of the main use cases for this is to increase the legibility of markup annotations covering text. You can check out this [Wikipedia entry](https://en.wikipedia.org/wiki/Blend_modes) to learn more about blend modes and their use.

## Blend modes supported by Nutrient annotations

| Name        | Description                                                                                                                                                        | Example                                                                     |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------- |
| Normal      | Uses only the color of the annotation and ignores the background color.                                                                                            |![](@/assets/guides/ios/annotations/annotation-blend-modes/normal.png)      |
| Multiply    | Multiplies the background content color with the annotation color.                                                                                                 |![](@/assets/guides/ios/annotations/annotation-blend-modes/multiply.png)    |
| Screen      | Inverse values of the color component of both the annotation and background contents are multiplied with each other.                                               |![](@/assets/guides/ios/annotations/annotation-blend-modes/screen.png)      |
| Overlay     | The annotation color is laid over the background content color, and it’s either multiplied or screened based on the background content color.                      |![](@/assets/guides/ios/annotations/annotation-blend-modes/overlay.png)     |
| Darken      | The background content color is replaced with the annotation color if the annotation color is darker.                                                              |![](@/assets/guides/ios/annotations/annotation-blend-modes/darken.png)      |
| Lighten     | The background content color is replaced with the annotation color if the annotation color is lighter.                                                             |![](@/assets/guides/ios/annotations/annotation-blend-modes/lighten.png)     |
| Color dodge | The annotation color is reflected by brightening the color of the background content.                                                                              |![](@/assets/guides/ios/annotations/annotation-blend-modes/color-dodge.png) |
| Color burn  | The annotation color is reflected by darkening the color of the background content.                                                                                |![](@/assets/guides/ios/annotations/annotation-blend-modes/color-burn.png)  |
| Soft light  | Darkening or lightening of colors is based on the background content color. The effect is similar to that of shining a diffuse spotlight on background content.    |![](@/assets/guides/ios/annotations/annotation-blend-modes/soft-light.png)  |
| Hard light  | Multiplies or screens the colors, depending on the background content color. The effect is similar to that of shining a harsh spotlight on the background content. |![](@/assets/guides/ios/annotations/annotation-blend-modes/hard-light.png)  |
| Difference  | The darker color of the background content color and the annotation color is subtracted from the lighter color.                                                    |![](@/assets/guides/ios/annotations/annotation-blend-modes/difference.png)  |
| Exclusion   | This is the same effect as difference but with low contrast.                                                                                                       |![](@/assets/guides/ios/annotations/annotation-blend-modes/exclusion.png)   |

### iOS references

| Name        | Enumeration case             |
| ----------- | ---------------------------- |
| Normal      | [`kCGBlendModeNormal`](https://developer.apple.com/documentation/coregraphics/cgblendmode/kcgblendmodenormal?language=objc)     |
| Multiple    | [`kCGBlendModeMultiply`](https://developer.apple.com/documentation/coregraphics/cgblendmode/kCGBlendModeMultiply?language=objc)   |
| Screen      | [`kCGBlendModeScreen`](https://developer.apple.com/documentation/coregraphics/cgblendmode/kCGBlendModeScreen?language=objc)     |
| Overlay     | [`kCGBlendModeOverlay`](https://developer.apple.com/documentation/coregraphics/cgblendmode/kCGBlendModeOverlay?language=objc)    |
| Darken      | [`kCGBlendModeDarken`](https://developer.apple.com/documentation/coregraphics/cgblendmode/kCGBlendModeDarken?language=objc)     |
| Lighten     | [`kCGBlendModeLighten`](https://developer.apple.com/documentation/coregraphics/cgblendmode/kCGBlendModeLighten?language=objc)    |
| Color dodge | [`kCGBlendModeColorDodge`](https://developer.apple.com/documentation/coregraphics/cgblendmode/kCGBlendModeColorDodge?language=objc) |
| Color burn  | [`kCGBlendModeColorBurn`](https://developer.apple.com/documentation/coregraphics/cgblendmode/kCGBlendModeColorBurn?language=objc)  |
| Soft light  | [`kCGBlendModeSoftLight`](https://developer.apple.com/documentation/coregraphics/cgblendmode/kCGBlendModeSoftLight?language=objc)  |
| Hard light  | [`kCGBlendModeHardLight`](https://developer.apple.com/documentation/coregraphics/cgblendmode/kCGBlendModeHardLight?language=objc)  |
| Difference  | [`kCGBlendModeDifference`](https://developer.apple.com/documentation/coregraphics/cgblendmode/kCGBlendModeDifference?language=objc) |
| Exclusion   | [`kCGBlendModeExclusion`](https://developer.apple.com/documentation/coregraphics/cgblendmode/kCGBlendModeExclusion?language=objc)  |

## Supported annotations

The [`blendMode`](https://www.nutrient.io/api/ios/documentation/pspdfkit/annotation/blendmode) is a property defined on [`Annotation`](https://www.nutrient.io/api/ios/documentation/pspdfkit/annotation), and Nutrient supports blend modes on a few selected annotations. All types of ink, shape, markup, and free text annotations support blend modes. Stamp and image annotations support blend modes only via the use of the blend mode API. Other annotations — such as the redaction, sound, and link annotations — do not support styling with blend modes.

## How to use blend modes

Blend modes work like any other style property on annotations: They can be applied onto any annotation (with the exception of the annotation types mentioned in the previous section) by using the API or via the UI.

### API usage

Blend modes can easily be used on supported annotations by simply setting the [`blendMode`](https://www.nutrient.io/api/ios/documentation/pspdfkit/annotation/blendmode) property on [`Annotation`](https://www.nutrient.io/api/ios/documentation/pspdfkit/annotation):

### SWIFT

```swift

let inkAnnotation = InkAnnotation()
// Set other required properties.
inkAnnotation.blendMode =.multiply

```

### OBJECTIVE-C

```objc

PSPDFInkAnnotation *inkAnnotation = [PSPDFInkAnnotation new];
// Set other required properties.
inkAnnotation.blendMode = kCGBlendModeMultiply;

```

### UI usage

The blend mode can also be changed via the UI using the annotation inspector ([`AnnotationStyleViewController`](https://www.nutrient.io/api/ios/documentation/pspdfkitui/annotationstyleviewcontroller)). You can enable blend mode selection for annotation types by [customizing the annotation inspector](https://www.nutrient.io/../../annotations/annotation-inspector/). This can be achieved by adding the [`blendMode`](https://www.nutrient.io/api/ios/documentation/pspdfkit/annotation/blendmode) key to the [`propertiesForAnnotations`](https://www.nutrient.io/api/ios/documentation/pspdfkitui/pdfconfiguration/propertiesforannotations) array for the desired annotation:

### SWIFT

```swift

let configuration = PDFConfiguration { builder in
  var annotationProperties = builder.propertiesForAnnotations

  annotationProperties[.ink] = [[AnnotationStyle.Key.blendMode, AnnotationStyle.Key.lineWidth, AnnotationStyle.Key.color]]
  annotationProperties[.underline] = [[AnnotationStyle.Key.blendMode, AnnotationStyle.Key.alpha]]
  annotationProperties[.line] = [[AnnotationStyle.Key.blendMode, AnnotationStyle.Key.color]]

  builder.propertiesForAnnotations = annotationProperties
}

```

### OBJECTIVE-C

```objc

PSPDFConfiguration *configuration = [PSPDFConfiguration configurationWithBuilder: ^(PSPDFConfigurationBuilder *builder) {
  NSMutableDictionary *annotationProperties = [builder.propertiesForAnnotations mutableCopy];

  annotationProperties[PSPDFAnnotationStringInk] = @[@[PSPDFAnnotationStyleKeyBlendMode, PSPDFAnnotationStyleKeyLineWidth, PSPDFAnnotationStyleKeyColor]];
  annotationProperties[PSPDFAnnotationStringUnderline] = @[@[PSPDFAnnotationStyleKeyBlendMode, PSPDFAnnotationStyleKeyAlpha]];
  annotationProperties[PSPDFAnnotationStringLine] = @[@[PSPDFAnnotationStyleKeyBlendMode, PSPDFAnnotationStyleKeyColor]];

  builder.propertiesForAnnotations = annotationProperties;
}];

```

The blend mode style option is, by default, only configured for ink annotations. You can also remove the blend mode style option for ink annotations by modifying the [`propertiesForAnnotations`](https://www.nutrient.io/api/ios/documentation/pspdfkitui/pdfconfiguration/propertiesforannotations) dictionary and removing the [`.blendMode`](https://www.nutrient.io/api/ios/documentation/pspdfkit/annotationstyle/key/blendmode) key from it.

## PDF storage

The annotation blend mode is not a standard key of the annotation dictionary in a PDF. Instead, Nutrient uses the defined blend mode when generating an annotation’s [appearance stream](https://www.nutrient.io/blog/what-are-appearance-streams/./). The blend mode is encoded into the appearance stream drawing commands, from where Nutrient can also later decode it. Third-party PDF viewers that support annotation appearance stream rendering should be able to honor the set blend mode. If, however, the annotation is modified in a third-party editor or viewer, the annotation stream could be regenerated by that editor. In that case, the blend mode setting might be lost.
---

## Related pages

- [Define annotation behavior with flags on iOS](/guides/ios/annotations/annotation-flags.md)
- [Annotations object model on iOS](/guides/ios/annotations/the-annotation-object-model.md)
- [How to embed files in PDF annotations on iOS](/guides/ios/annotations/create-edit-and-remove/attach-a-file.md)
- [Setting annotation authors on iOS](/guides/ios/annotations/annotation-author-name.md)
- [Detect changes to PDF annotations in iOS apps](/guides/ios/annotations/detecting-if-annotations-have-changed.md)
- [Disable PDF annotation editing for iOS users](/guides/ios/annotations/create-edit-and-remove/disable-editing.md)
- [Image picker: Add image annotations to PDFs on iOS](/guides/ios/miscellaneous/image-picker.md)
- [Drag-and-drop annotations on iOS](/guides/ios/annotations/create-edit-and-remove/drag-and-drop.md)
- [Programmatically create PDF annotations on iOS](/guides/ios/annotations/programmatically-creating-annotations.md)
- [Annotation state manager on iOS](/guides/ios/annotations/annotation-state-manager.md)
- [Undo and redo annotations on iOS](/guides/ios/features/undo-redo.md)
- [Z-index for annotation stacking order on iOS](/guides/ios/annotations/annotation-z-index.md)

