---
title: "Add watermarks to images"
description: "You need to add watermarks to hundreds of different images to protect copyright, add branding, or mark drafts."
url: "https://www.pixeltable.com/notebooks/img-add-watermarks"
updated: "2026-04-10"
---

# Add watermarks to images

You need to add watermarks to hundreds of different images to protect copyright, add branding, or mark drafts.

- **Type:** Notebook
- **Group:** Images

## How it works

You add watermarks to images using a custom UDF that wraps Pillow's ImageDraw (relies on PIL/Pillow). This gives you full control over watermark placement, font, transparency, and color.

You can iterate on transformations before adding them to your table. Use .select() with .collect() to preview results on sample images—nothing is stored in your table. If you want to collect only the first few rows, use .head(n) instead of .collect(). Once you're satisfied, use .add_computed_column() to apply watermarks to all images in your table.

## What it covers

- Create simple text watermarks
- Test transformations before applying
- Apply to multiple images automatically

## What it uses

- **Install:** `pip install pixeltable`
- **Pixeltable calls:** `pxt.create_table()`, `@pxt.udf`, `insert()`, `add_computed_column()`

## Open it

- **Open in Colab:** https://colab.research.google.com/github/pixeltable/pixeltable/blob/release/docs/release/howto/cookbooks/images/img-add-watermarks.ipynb
- **Docs page:** https://docs.pixeltable.com/howto/cookbooks/images/img-add-watermarks
- **Source on GitHub:** https://github.com/pixeltable/pixeltable/blob/release/docs/release/howto/cookbooks/images/img-add-watermarks.ipynb
