# Picmal, full documentation
> Picmal is a native macOS application for batch converting and compressing
> images, videos, audio files, and PDFs. It processes files entirely offline,
> supports drag-and-drop workflows, and integrates with Finder, Shortcuts and
> Raycast.
This file is the complete Picmal documentation as a single document.
For the site index, pricing, the supported format lists and the other
machine-readable endpoints, read https://picmal.app/llms.txt first. Pricing on
its own is at https://picmal.app/pricing.md, and the agent guide is at
https://picmal.app/AGENTS.md.
Every section below is also addressable on its own by appending `.md` to its
page URL, e.g. https://picmal.app/docs/cli.md.
---
# Introduction
> Picmal documentation. Convert and compress images, audio, and video, combine and split PDFs, and make PDFs from images on your Mac without uploads or subscriptions.
Source: https://picmal.app/docs
Picmal is a macOS toolbox for your media: convert and compress images, audio, and video, combine and split PDFs, and turn images into multi-page PDFs. Drop your files in, pick your settings, and go.
### Simple by default
No setup, no configuration, no technical knowledge required. Drop files in, choose a format, and convert. It works the first time you open it.
### Opinionated advanced mode
When you need more control, advanced settings are available, but they come with sensible defaults already selected. You can tweak quality, codecs, and encoding, but you'll rarely need to.
### Native macOS integration
Picmal is a native Mac app. Finder right-click, Services, Shortcuts, the menu bar, and drag and drop all work the way you'd expect on macOS.
### Private and local
All processing happens on your Mac. No files leave your machine, no internet required, no accounts, no cloud.
## Documentation
- [Getting started](/docs/getting-started). Install, first conversion, first compression
- [Converting files](/docs/converting-files). Change file formats
- [Compressing files](/docs/compressing-files). Reduce file sizes with presets
- [Crop](/docs/crop). Trim margins off images and PDFs, or auto-trim borders
- [Audio tools](/docs/audio-tools). Merge audio files, or split an audiobook by chapter
- [Video tools](/docs/video-tools). Combine several videos into one, or build a photo slideshow
- [PDF tools](/docs/pdf-tools). Combine, split, and make PDFs from images
- [Vectorize](/docs/vectorize). Trace raster images into real SVG vectors
- [Remove Background](/docs/remove-background). Cut the subject out onto a transparent PNG
- [Download Video](/docs/download-video). Fetch videos from a link, ready to play
- [Managing the queue](/docs/managing-the-queue). Priority, pause/resume, and the right-click menu
- [Supported formats](/docs/supported-formats). Full list of input and output formats
- [Image compression](/docs/image-compression). Per-format quality settings and presets
- [Audio and video](/docs/audio-and-video). Codecs, bitrates, and encoding settings
- [Resize and color space](/docs/resize-and-color-space). Image resizing modes and color profiles
- [Watermarks](/docs/watermarks). Add a logo or PNG overlay to images and videos
- [Output and naming](/docs/output-and-naming). Where files go and how they're named
- [Watched folders](/docs/watched-folders). Automatic processing for folders
- [Integrations](/docs/integrations). Drag & drop, Finder Services, Shortcuts, Raycast, menu bar
- [License](/docs/license). Free trial, activation and deactivation
- [FAQ and troubleshooting](/docs/faq). Common questions and fixes
## Keyboard shortcuts
| Shortcut | Action |
| --------- | --------------------------------------------------- |
| Cmd+O | Add files or folders in the tool you're looking at |
| Cmd+Return| Run the tool you're looking at |
| Cmd+, | Open Settings |
| Cmd+Q | Quit Picmal |
---
# Getting Started
> Install Picmal on your Mac in under a minute. Download the DMG, drag it to Applications, and convert your first batch of files.
Source: https://picmal.app/docs/getting-started
## Install
1. [Download Picmal](https://picmal.app/downloads/Picmal-1.9.0.dmg)
2. Open the DMG file
3. Drag Picmal to your Applications folder
4. Launch Picmal
Every download starts with a 7-day trial. Press **Try free** in the sidebar and every tool runs on that Mac for a week, no key, no card, no account. See [License](/docs/license#try-it-free) for what the trial covers.
Check the [changelog](/changelog) for the latest version and release notes.
VIDEO
## Your first conversion
1. Launch Picmal, **Convert** is selected in the sidebar
2. Drop one or more files into the window (or click **Add Files**)
3. Pick your output format from the dropdown
4. Adjust settings if you want (compression, metadata, resize)
5. Click **Convert**. Your new files appear alongside the originals
## Your first compression
1. Select **Compress** in the sidebar
2. Drop your files in
3. Pick a preset (e.g., **Balanced**, **Web optimized**) or configure custom settings
4. Click **Compress**, compressed files are saved with a `_compressed` suffix by default
## Your first PDF
The sidebar's **PDF** section has three more tools:
- **Combine PDFs**. Drop two or more PDFs, drag to set the order, click **Combine**
- **Split PDF**. Drop a PDF, type page ranges like `1-3, 5, 8-`, click **Split**
- **Images to PDF**. Drop images, pick a page size, click **Create PDF**
See [PDF tools](/docs/pdf-tools) for page ranges, page sizes, quality, and password protection.
## Merge audio
The **Audio** section has **Merge Audio**. Drop in two or more tracks, drag them into order, and click **Merge** to get one file (it can even build a chaptered M4B audiobook), and **Split by Chapter**, which breaks a chaptered audiobook back into one file per chapter. See [Audio tools](/docs/audio-tools).
## Combine videos
The **Media** section adds **Combine Videos**. Drop in two or more clips, drag them into order, and click **Combine** to get one video. Matching clips are joined losslessly; mismatched formats or sizes are scaled and re-encoded to match.
Next to it is **Slideshow**. Drop in a batch of photos, set how long each one stays on screen, pick a frame size, and click **Create Slideshow** to get an MP4. See [Video tools](/docs/video-tools).
## Crop
The **Media** section has a **Crop** tool. Drop images or PDFs in, type the margins to remove from each edge (pixels for images, millimeters for PDFs) and click **Crop**. Turn on auto-trim to strip a solid-color border off images without measuring anything. See [Crop](/docs/crop).
## Download a video
Next to it is **Download Video**. Paste a link (or press ⌘V, or drag one from your browser), pick a folder, choose Best, 1080p, or Audio only, and click **Download**. Picmal makes sure what you get back opens in QuickTime. See [Download Video](/docs/download-video).
## Image tools
The **Media** section also has two image tools. **Vectorize** traces a PNG or JPG into a real SVG. Pick a style per image and click **Vectorize All**. **Remove Background** lifts the subject out onto a transparent PNG, right on your Mac. See [Vectorize](/docs/vectorize) and [Remove Background](/docs/remove-background).
## Batch processing
Drop multiple files or entire folders at once, up to 10,000 files. Picmal processes them all in one go, images, audio, and video. While a batch runs you can set per-file priority, pause and resume, or cancel; see [managing the queue](/docs/managing-the-queue).
## From the terminal
Picmal includes `picmal-cli`, a command-line tool that runs the same engines as the app. Install it from the menu bar via **Picmal → Install Command Line Tool…** and you can convert, compress, combine and split PDFs, and more from any terminal. See [Command line (CLI)](/docs/cli) for the full reference.
## What's next
- [Converting Files](/docs/converting-files). Learn about format conversion options
- [Compressing Files](/docs/compressing-files). Explore compression presets
- [Crop](/docs/crop). Trim margins off images and PDFs
- [Audio tools](/docs/audio-tools). Merge audio files, or split an audiobook by chapter
- [Video tools](/docs/video-tools). Combine several videos into one, or build a photo slideshow
- [PDF tools](/docs/pdf-tools). Combine, split, and make PDFs from images
- [Watched Folders](/docs/watched-folders). Set up automatic processing
- [Command line (CLI)](/docs/cli). Drive Picmal from the terminal
---
# App Icons
> Turn a single image into ready-to-ship app icons on your Mac, a macOS .icns, a Windows .ico, and an Xcode-ready iOS icon set, with non-square images fit without cropping.
Source: https://picmal.app/docs/app-icons
Picmal's sidebar has an **App Icons** tool that turns one image into ready-to-ship app icons for every platform. Drop in a logo and get back a macOS `.icns`, a Windows `.ico`, and an iOS icon set. Like everything else in Picmal, it runs entirely on your Mac.
## Generate app icons
1. Select **App Icons** in the sidebar
2. Drop a single image into the window
3. Pick the formats you want, macOS, Windows, iOS, or any combination
4. Click **Generate**

Each format is written into an output folder next to your source, named ` App Icons`.
| Format | Output | What you get |
| ------- | ------------------- | ------------------------------------------------------------------------ |
| macOS | `AppIcon.icns` | The multi-resolution icon macOS apps use. |
| Windows | `AppIcon.ico` | A multi-resolution `.ico` for Windows apps. |
| iOS | `AppIcon.appiconset`| A universal 1024 icon set you can drag straight into Xcode's asset catalog. |
## Getting a clean result
- **Use a square source, at least 1024×1024.** That's the largest size any of the icons need, so a big square image stays crisp everywhere.
- **Non-square images are fit, never cropped.** A wide or tall image is centered and padded to a square, so nothing gets cut off.
- **The iOS icon is flattened to an opaque background.** iOS icons can't be transparent, so a see-through source is placed on a solid background. The App Store rejects icons with an alpha channel otherwise.
## macOS tile shape
By default the icon fills the square edge to edge. Next to the format checkboxes you can instead pick a **macOS tile shape** to round the image into a proper macOS app tile, with the margin and soft shadow baked in:
- **Big Sur**: the classic squircle macOS has used since Big Sur.
- **Tahoe**: the rounder corner from the newer icon style.
- **None**. Leave the image full-bleed (the default).
The shape applies to the `.icns` output. Windows and iOS icons are unaffected.
## Use it from Shortcuts and the terminal
App Icons is available beyond the app window:
- In Shortcuts, the **Generate App Icons** action takes one image and returns the icon files. See [Integrations](/docs/integrations#shortcuts-app).
- From the terminal, use `picmal-cli app-icons` to generate icons (`app-icon` still works). See [Command line](/docs/cli#app-icons).
Like Convert and Compress, the tool requires the [free trial or a license](/docs/license).
---
# Audio and video
> Audio and video conversion settings in Picmal, codecs, bitrates, and quality presets for compressing MP3, AAC, MP4, MOV, and more on Mac.
Source: https://picmal.app/docs/audio-and-video
## Audio compression
### Codecs
| Codec | Type | Best For |
| ----- | -------- | ---------------------------------------------- |
| AAC | Lossy | General music and audio, widest compatibility |
| MP3 | Lossy | Legacy compatibility |
| Opus | Lossy | Speech, podcasts, low-bitrate audio |
| FLAC | Lossless | Archival, music production |
| ALAC | Lossless | Apple Lossless, imports straight into Apple Music |
### ALAC (Apple Lossless)
Pick **ALAC** as the output format to get a lossless `.m4a` from FLAC, WAV, or AIFF. It's the format Apple Music expects for lossless libraries. ALAC conversions are bit-for-bit lossless; they preserve every sample of the source.
### Bitrate modes
| Mode | Description |
| -------------- | ------------------------------------------------------------------- |
| VBR (Variable) | Allocates more bits to complex passages. Best quality per file size |
| ABR (Average) | Targets an average bitrate. Good balance |
| CBR (Constant) | Fixed bitrate throughout. Predictable file size |
### Force mono
Turn on **force mono** to collapse stereo audio down to a single channel. Useful for voice recordings and podcasts, where nobody notices the missing stereo field and the file comes out roughly half the size.
### Sample rate
The **Custom** audio preset has a sample rate picker, from 8 kHz all the way up to 96 kHz:
| Rate | Typical Use |
| --------- | ---------------------------- |
| 8 kHz | Telephony |
| 16 kHz | VoIP, voice assistants |
| 22.05 kHz | AM radio |
| 44.1 kHz | CD audio |
| 48 kHz | DVD, video production |
| 96 kHz | High-resolution audio |
Want to resample without touching the codec? Convert a file to its own format (FLAC → FLAC, for example) and pick your target sample rate. See [converting files](/docs/converting-files#same-format-conversions) for the details.
Not every codec accepts every rate: MP3 stops at 48 kHz, and Opus only speaks 8, 12, 16, 24, and 48 kHz. Ask for 96 kHz into MP3 and Picmal converts at the nearest rate the codec does support, then says which one in the Convert table. It used to fail the encode and leave a 0-byte file. The command line makes the same substitution.
### Bit depth
The **Custom** audio preset also lets you pick a bit depth on top of the sample rate:
| Depth | Typical Use |
| ------ | ------------------------------------------- |
| 16 bit | CD quality, general listening |
| 24 bit | Studio masters, mixing, mastering |
| 32 bit | Floating-point processing, archival masters |
Pair 16 bit with 44.1 kHz for CD-quality FLAC, or jump to 24 bit + 48 kHz for studio work. The dedicated **CD quality** preset is 16 bit + 44.1 kHz FLAC in one click.

### Cover art
Picmal can embed album art into your audio output automatically. Turn on **Embed cover art from the source folder** in **Settings → Audio**, and for each track it looks for a cover image in the same folder and writes it into the file. It works both when converting and when compressing.
By default it looks for `cover.jpg`, `folder.jpg`, and `front.jpg`, but you can edit that list of filenames to match how your library is organized. The names have to match exactly, extension included. Add `cover.png` or `AlbumArt.jpg` to the list if that's how your library names them. Capitalization doesn't matter, and the image has to sit in the same folder as the track.
Turn on **Skip files that already have artwork** to leave existing covers alone. Picmal only adds art to tracks that don't have any. Turn it **off** if you want the folder image to replace the artwork a track already carries.
Only some formats can store a picture: **MP3, M4A, M4B, ALAC and FLAC**. WAV, AIFF, OGG and Opus have nowhere to put one, so choosing one of those leaves the output with no art. Picmal flags the row and explains why. Compressing a track keeps whatever art it already has, unless you also have **Remove metadata** turned on, which strips it along with everything else.

### Audio presets
See [compressing files](/docs/compressing-files#audio-presets) for the full presets table.
## Video compression
### Codecs
| Codec | Compatibility | Compression | Notes |
| ------------ | ------------- | ----------- | ------------------------------------------- |
| H.264 | Excellent | Good | Plays everywhere, web, mobile, desktop |
| H.265 (HEVC) | Good | Better | ~50% smaller than H.264 at same quality |
| VP9 | Good | Better | Google's codec, great for WebM |
| AV1 | Growing | Best | Newest, best compression, slowest to encode |
| Copy |, | None | Carries the existing picture and sound over untouched |
#### Copy (no re-encode)
Pick **Copy** when you only want to change the container. Picmal moves the existing video and audio streams into the new file without touching them, so a clip that would take minutes to re-encode is done in about a second, at the original quality.
Copy needs the target container to be able to hold the streams it's given, and it needs nothing else about the picture to change. Ask for a resize, a frame-rate change, a playback-speed change, or a watermark and there's nothing to copy. Picmal encodes with H.264 instead. It's a Convert setting: compressing a video always means re-encoding it, so Compress falls back to H.264 too.
### Encoding speed
| Speed | Encode Time | File Size | Quality |
| --------- | ----------- | --------- | ------- |
| Ultrafast | Fastest | Largest | Lowest |
| Fast | Fast | Larger | Lower |
| Medium | Moderate | Balanced | Good |
| Slow | Slow | Smaller | Better |
| Slower | Slowest | Smallest | Best |
Slower speeds give the encoder more time to sniff out efficient compression. **Medium** is the sensible default for most jobs.
### CRF (Constant Rate Factor)
CRF controls quality on a 0–51 scale. **Lower = better quality, larger file.**
| CRF Range | Quality Level |
| --------- | ----------------------------------- |
| 18–20 | Visually lossless / archival |
| 21–23 | High quality, good file size |
| 24–26 | Balanced |
| 27–28 | Noticeable compression, small files |
| 29+ | Heavy compression |
### Audio quality for video
**Settings → Video → Advanced** has its own **Audio quality** slider, shown in kbps (48–320). It's separate from the video quality slider: push it up for a music clip, pull it down for a talking head.
It only applies when the soundtrack is actually re-encoded. A plain container change copies the audio across untouched, which is what keeps that path fast.
From the terminal, `--audio-quality` on `convert` and `compress` does the same thing on a 1–100 scale. See [Command line](/docs/cli#convert).
### Frame rate
Drop the frame rate (say 60 fps → 30 fps) to squeeze the file down further. Great for screen recordings, tutorial clips, and anything that doesn't need cinema-grade motion. Set the target frame rate in the video compression settings.
### Resolution
Open **Video Options** and pick a **Resolution** to cap how tall the output can be, 2160p (4K), 1440p, 1080p, 720p, 480p, 360p, or **Original**. Picmal only ever scales down and keeps the aspect ratio, so a clip that's already shorter than your pick comes through untouched. Great for turning 4K phone footage into a web-friendly 1080p. The setting applies whether you're converting or compressing.

### Output format
You can swap the container format while you compress. Take a MOV and come out the other side with MP4, MKV, WebM or AVI. Picmal handles codec compatibility for you; if the codec you picked won't fit in the container you chose, it quietly picks one that will.
Set the output format in the video compression settings. Leave it alone if you want to keep the original container.
### Estimated size
Before you run a video compression, Picmal shows an estimate of the output size based on your current codec, CRF, and frame-rate settings, so you know roughly how much space you'll save without having to encode first. Change a setting and the estimate updates.

### Video presets
See [compressing files](/docs/compressing-files#video-presets) for the full presets table.
## Subtitle burn-in
Attach an SRT or VTT file to any video and the subtitles get rendered straight into the frames. Because the text is literally painted onto the pixels, it plays on any device with zero guessing about subtitle tracks.

### How to use
1. Click the **film icon** next to a video in the file list
2. Pick your `.srt` or `.vtt` file
3. Convert as usual. The subtitles come out baked into the output
### Styling
Open **Settings → Video** to control how subtitles look:
| Setting | Options |
| -------- | ------------------------------------------------------------ |
| Size | Small, medium, large, or a custom point size |
| Color | Any color (text and optional outline) |
| Position | Top, center, or bottom of the frame |
Styling is global. Whatever you pick in Settings applies to every video with a subtitle file attached.
### Existing subtitle tracks are preserved
If a video already carries soft subtitle tracks (the kind Subler and other tools add), Picmal keeps them when it converts or compresses the file, as long as the output format can hold them: text subtitles into MP4, MOV, and WebM, and anything into MKV. A subtitle the target format can't store is quietly dropped so the conversion still goes through. This is separate from burn-in above, the tracks stay selectable subtitles rather than being painted onto the frames. It works in the app and from the command line.
## Playback speed
Speed a video up or slow it down without wrecking the audio pitch. Useful for trimming down meeting recordings, rolling tutorials into time-lapses, or stretching a golf swing out for review.

### How to use
1. Click the **film icon** next to a video in the file list
2. Pick a preset (0.25×, 0.5×, 2×, 4×) or enter a custom percentage from 10% to 800%
3. Optionally click **Apply speed to all videos** to reuse the setting across the whole batch
Audio pitch is preserved, so 2× speeds up a narration without turning your voiceover into a chipmunk.
---
# Audio tools
> Merge audio files into one and split chaptered audiobooks into per-chapter files on your Mac, reorder, choose the output format, and build M4B audiobooks with chapters.
Source: https://picmal.app/docs/audio-tools
Picmal's sidebar has an **Audio** section for working with audio files as a whole, rather than converting them one by one. **Merge Audio** joins several files into a single track (and can build a chaptered M4B audiobook) while **Split by Chapter** breaks an audiobook back into one file per chapter. Like everything else in Picmal, both run entirely on your Mac.
## Merge Audio
1. Select **Merge Audio** in the sidebar
2. Drop two or more audio files into the window
3. Drag rows to set the order, the list order is the play order
4. Click **Merge**

The merged file is saved next to the first one as ` (merged).`. If that name is taken, Picmal counts up instead of overwriting, ` (merged) 2.mp3`, and so on.
- Drag rows to reorder; the number on each row is its position in the merged track.
- Select rows and press Delete to remove them, or right-click for **Remove** / **Show in Finder**.
- A file Picmal can't read as audio shows an orange warning and blocks the merge. Remove it and try again.
### Lossless when it can be
When every file in the list already shares the same format, sample rate, and channels, Picmal joins the streams without re-encoding. It's fast and there's no quality loss. Mix formats (say an MP3 and a WAV) and it re-encodes them to the output format instead. Either way you get one continuous track.
### Output format
Open **Audio Options** to choose the output format. Leave it on **Same as first file** to keep the first track's format (the setting that keeps a same-format merge lossless) or pick one of MP3, M4A, M4B, AAC, WAV, AIFF, FLAC, OGG, OPUS, or AC3 to convert everything as it merges. Your choice is remembered between sessions.
### Build a chaptered audiobook
Pick **M4B** as the output format and a **Add chapter markers** option appears in Audio Options. Tick it, and each file you added becomes its own chapter in the finished book, named after the file. Point Merge Audio at the per-chapter files you get out of Audible or Libation and you get a single M4B that scrubs by chapter in Books, Music, or QuickTime. Leave it unticked for one continuous track with no chapters.

### Output name
In the same popover, type a name for the merged file, or leave it blank for the automatic ` (merged)` name. The extension follows the output format you picked. The file is always saved next to the first input.
## Split by Chapter
The reverse of building an audiobook: take one chaptered file and get one file per chapter back.
1. Select **Split by Chapter** in the sidebar
2. Drop in a chaptered audiobook (M4B, M4A, or any file that carries chapter markers)
3. Its chapters show up in a list so you can check them
4. Choose an output format, or keep the original
5. Click **Split**

Each chapter is written out as `Book - 01 - Chapter Title`, tagged with its chapter title and track number so it stays in order in your library. Leave the format on the original to split without re-encoding, or pick another format (say MP3) to convert as it splits.
A file with no chapter markers can't be split. Picmal tells you and skips it.
## Use it from Shortcuts and the terminal
Merge Audio is available beyond the app window:
- In Shortcuts, the **Merge Audio** action takes audio files in and returns the finished track. See [Integrations](/docs/integrations#shortcuts-app).
- From the terminal, use `picmal-cli merge-audio` to join files and `picmal-cli split-chapters` to split an audiobook. See [Command line](/docs/cli#merge-audio).
Like Convert and Compress, both tools require the [free trial or a license](/docs/license).
---
# Command line (picmal-cli)
> Run Picmal from the terminal. Convert, compress, combine and split PDFs, make PDFs from images, watch folders, and apply saved presets without opening the app.
Source: https://picmal.app/docs/cli
Picmal ships with a command-line companion, `picmal-cli`, bundled inside the app. Same conversion engine as the UI, so the output is identical. You just get flags, JSON, and exit codes you can drop into a script.
## Installation
From the menu bar, choose **Picmal → Install Command Line Tool…**. Picmal asks for your administrator password and creates a symlink at `/usr/local/bin/picmal-cli`, which is on the default macOS `PATH` for both bash and zsh. After that, `picmal-cli` works from any terminal.

To remove it later, use **Picmal → Uninstall Command Line Tool…**. Only the symlink is removed; the app stays put.
If you'd rather invoke the binary directly without installing it, it lives inside the app bundle:
```
/Applications/Picmal.app/Contents/MacOS/picmal-cli
```
`convert`, `compress`, `crop`, `combine-pdfs`, `combine-videos`, `split-pdf`, `images-to-pdf`, `merge-audio`, `split-chapters`, `remove-background`, and `watch` need a valid Picmal license. The 7-day trial covers the app, not the command line. The read-only commands (`presets`, `formats`, `license-status`, `version`) work without one.
## Synopsis
```
picmal-cli [options]
```
| Subcommand | What it does |
| ---------------- | ------------------------------------------------- |
| `convert` | Convert files to a target format |
| `compress` | Compress files keeping the same format |
| `crop` | Crop margins off images and PDF pages |
| `combine-pdfs` | Combine two or more PDFs into one |
| `split-pdf` | Split a PDF into one document per page range |
| `images-to-pdf` | Create a multi-page PDF from images |
| `merge-audio` | Merge two or more audio files into one |
| `combine-videos` | Combine two or more videos into one |
| `slideshow` | Turn still images into a video slideshow |
| `split-chapters` | Split a chaptered audiobook into per-chapter files |
| `remove-background` | Cut the background out of images (transparent PNG) |
| `presets` | List or inspect saved presets (built-in + custom) |
| `formats` | List supported formats by category |
| `watch` | Add, list, and remove watched folders |
| `license-status` | Check whether the host app is licensed |
| `version` | Print the bundled app version |
## Global options
These flags work on every subcommand:
| Flag | Description |
| --------------- | ------------------------------------------------------------------------------ |
| `--json` | Force NDJSON output to stdout (one JSON object per line). Auto-on when piped. |
| `--text` | Force human-readable output even when piped. |
| `-q`, `--quiet` | Suppress per-file status lines (final summary still emitted). Where available. |
| `--verbose` | Pass underlying tool stderr through. Useful for debugging. |
## convert
Convert one or more files to a target format.
```bash
picmal-cli convert -i photo.heic -f jpg
picmal-cli convert -i ~/Pics -f webp -o ~/out --quality 80
picmal-cli convert -i a.png b.png -f avif --strip-metadata
picmal-cli convert -i clip.mov -f mp4 --quality 70
picmal-cli convert -i photo.jpg -f jpg --resize 100kB
picmal-cli convert -i photo.jpg -f jpg --copyright "© 2026 Jane Doe" --artist "Jane Doe"
picmal-cli convert -i icon.icns -f png -o ~/out
cat list.txt | picmal-cli convert -i - -f webp -o ~/out
```
| Flag | Description |
| ------------------------- | ---------------------------------------------------------------------------- |
| `-i`, `--input ` | One or more input paths. Use `-` to read newline-separated paths from stdin. |
| `-f`, `--format ` | Target format extension (e.g. `jpg`, `webp`, `mp4`, `mp3`). |
| `-o`, `--output ` | Output file or directory. Defaults to alongside each input. |
| `-w`, `--overwrite` | Overwrite existing outputs. |
| `--pattern ` | Rename outputs with a naming pattern (see [naming patterns](#naming-patterns)). |
| `--quality ` | Quality 0–100. Format-specific defaults if omitted. Overrides `--preset`. |
| `--preset ` | Apply a saved preset by name (see [Presets](#presets)). |
| `--resize ` | Resize geometry (`1920x1080`, `1920x`, `x1080`, `50%`) or a target file size (`100kB`, `2MB`), images are scaled down to fit the budget. |
| `--trim` | Trim a solid-color border off each image before resizing (5% tolerance; use [`crop --fuzz`](#crop) for another one). |
| `--audio-quality ` | Audio quality 1–100 for video outputs, mapped to 48–320 kbps. Only used when the soundtrack is re-encoded. |
| `--color-space ` | One of `srgb`, `p3`, `adobergb`, `gray`, `cmyk`. |
| `--metadata ` | Preset: `stripall`, `essential`, or `keepall`. See [Metadata](#metadata). |
| `--keep ` | Comma-separated categories to keep; everything else is stripped. |
| `--strip ` | Comma-separated categories to strip; everything else is kept. |
| `-s`, `--strip-metadata` | Strip EXIF/IPTC/XMP from output (alias for `--metadata stripall`). |
| `--copyright ` | Copyright notice to embed (EXIF, IPTC, and XMP). Written even with `--strip-metadata`. |
| `--artist ` | Artist / creator name to embed (EXIF Artist, IPTC byline, XMP creator). |
| `--credit ` | Credit line to embed (IPTC credit, XMP credit). |
| `--contact ` | Contact or URL to embed (XMP rights web statement, IPTC contact). |
| `--pdf-dpi ` | DPI for PDF rasterization (also tags output density on raster outputs). |
| `--icon-size ` | Which image to take out of a multi-size icon (`.icns`): `largest` (default), `all`, or a pixel size such as `512`. |
| `--watermark ` | Watermark image path. |
| `--watermark-opacity ` | 0.0–1.0. Default `0.5`. |
| `--watermark-position` | `tl`, `tr`, `bl`, `br`, or `center`. Default `br`. |
The copyright flags are independent of `--strip-metadata`: pass both to strip a photo's camera/GPS data while still stamping your own ownership tags onto the output. Empty flags are skipped; values you pass always overwrite any existing tag.
An `.icns` input gives you one image at its largest embedded size. Pass `--icon-size all` to get one output per size instead, named `-x.` (the same convention `split-pdf` uses for pages), or a pixel size such as `--icon-size 256` to pick one. `--quality`, `--resize`, and `--watermark` apply to whatever comes out. Every output lands in `-o`, not beside the source. See [Apple icon files](/docs/converting-files#apple-icon-files).
### Metadata
The metadata flags mirror the app's [Metadata settings](/docs/metadata). Use a preset, or take per-category control with `--keep` / `--strip`:
```bash
picmal-cli convert -i photo.jpg -f jpg --metadata essential
picmal-cli convert -i photo.jpg -f jpg --keep copyright,colorProfile
picmal-cli convert -i photo.jpg -f jpg --strip location,identifiers
```
Categories: `location`, `camera`, `dateTime`, `copyright`, `colorProfile`, `orientation`, `identifiers`, `thumbnail`. Friendly aliases work too, `gps`, `icc`, `date`, `serial`, `lens`, `thumb`. `--keep` lists what survives; `--strip` lists what comes off and keeps the rest. Precedence is `--keep` > `--strip` > `--metadata` > `--strip-metadata`.
These flags work the same on `compress` and `watch add`.
## compress
Compress one or more files keeping the same format. Output defaults to `_compressed.` next to each input.
```bash
picmal-cli compress -i big.jpg --quality 70
picmal-cli compress -i ~/Pics -o ~/out --strip-metadata
picmal-cli compress -i clip.mp4 --quality 60 -o clip-small.mp4
picmal-cli compress -i portfolio.jpg --copyright "© 2026 My Studio" --contact "hello@example.com"
picmal-cli compress -i podcast.mp3 --preset "Voice memo"
```
| Flag | Description |
| ------------------------ | ------------------------------------------------------------------------- |
| `-i`, `--input ` | One or more input paths. Use `-` for stdin. |
| `-o`, `--output ` | Output file or directory. |
| `--quality ` | Quality 0–100. Format-specific defaults if omitted. Overrides `--preset`. |
| `--preset ` | Apply a saved preset by name (see [Presets](#presets)). |
| `--trim` | Trim a solid-color border off each image before encoding (5% tolerance). |
| `--audio-quality ` | Audio quality 1–100 for video outputs, mapped to 48–320 kbps. Only used when the soundtrack is re-encoded. |
| `-s`, `--strip-metadata` | Strip EXIF/IPTC/XMP from output. |
| `--copyright ` | Copyright notice to embed (EXIF, IPTC, and XMP). Written even with `--strip-metadata`. |
| `--artist ` | Artist / creator name to embed. |
| `--credit ` | Credit line to embed. |
| `--contact ` | Contact or URL to embed. |
| `-w`, `--overwrite` | Overwrite existing outputs. |
| `--pattern ` | Rename outputs with a naming pattern (see [naming patterns](#naming-patterns)). |
PDFs are compressed with the same text-preserving engine as the app: only the images inside are re-encoded, and the output is never larger than the input. Compressing a scan hard enough to shrink it means rebuilding the document, which drops its links, bookmarks, and form fields, when that happens `picmal-cli` prints a warning and adds `pdf_structure_dropped` to the file's `notes` in JSON output. See [How PDF compression works](/docs/image-compression#how-pdf-compression-works).
### Naming patterns
`convert` and `compress` both take `--pattern`, which renames outputs using the same tokens as the app: `{original}`, `{date}`, `{datetime}`, `{year}`, `{month}`, `{day}`, `{camera}`, `{iso}`, and `{sequence}`. See [output and naming](/docs/output-and-naming#tokens) for what each one means.
```bash
# holiday-001.webp, holiday-002.webp, ...
picmal-cli convert -i ~/Pics/*.jpg -f webp -o ~/out --pattern 'holiday-{sequence:3}'
# 2026-03-15_IMG_0042.jpg, dated from EXIF
picmal-cli compress -i ~/Pics -o ~/out --pattern '{date}_{original}'
```
`{sequence}` numbers files in the order you pass them. Without `--pattern`, `convert` keeps the original name and `compress` appends `_compressed`. A `--output` path that names a file rather than a directory is used verbatim, pattern or not.
If your `--preset` is an audio or video preset and you don't pass `--output`, `picmal-cli` picks the right container for you (Opus → `.opus`, AAC → `.m4a`, FLAC → `.flac`, VP9 → `.webm`). Pass `--output` if you want a specific path.
## crop
Crop margins off images and PDF pages, or auto-trim a solid-color border from images. Margins are **pixels for images** and **millimeters for PDFs**. PDF pages keep their text, links, and form fields, only the page boxes change.
```bash
picmal-cli crop photo.png --auto-trim
picmal-cli crop scan.jpg --top 40 --bottom 40
picmal-cli crop report.pdf --top 20 --bottom 20 # 20 mm off each page
picmal-cli crop *.pdf --left 15 -o out/
```
| Flag | Description |
| ----------------------- | ---------------------------------------------------------------------------------- |
| `` | Image or PDF files to crop (positional, at least one). |
| `--top ` | Margin to remove from the top. Default `0`. |
| `--bottom ` | Margin to remove from the bottom. Default `0`. |
| `--left ` | Margin to remove from the left. Default `0`. |
| `--right ` | Margin to remove from the right. Default `0`. |
| `--auto-trim` | Images only: remove a solid-color border by reading the corner color. |
| `--fuzz ` | Auto-trim color tolerance, 0–50%. Default `5`. |
| `-o`, `--output ` | Output directory. Default: next to each input, as `_cropped.`. |
| `-w`, `--overwrite` | Overwrite existing output files. |
Pass a margin, `--auto-trim`, or both, with neither, the command refuses rather than writing a byte-identical copy. `--auto-trim` on a PDF is an error for the same reason: give PDFs explicit margins. See [Crop](/docs/crop).
For a border trim as part of a normal conversion, `convert` and `compress` take `--trim` instead.
## combine-pdfs
Combine two or more PDFs into a single document. Inputs are merged in the order you pass them. Also available as `combine`, its name before 1.8.7.
```bash
picmal-cli combine-pdfs a.pdf b.pdf
picmal-cli combine-pdfs chapter*.pdf -o book.pdf
```
| Flag | Description |
| ----------------------- | ---------------------------------------------------------------------------------- |
| `` | PDF files to combine, in page order (positional, at least two). |
| `-o`, `--output ` | Output file or directory. Default: ` (combined).pdf` next to the first input. |
| `-w`, `--overwrite` | Overwrite an existing output file. |
Password-protected inputs are refused (exit `11`). Unlock them first. Uses PDFKit, macOS's native PDF engine, so pages are copied losslessly.
## split-pdf
Split a PDF into one document per page range. Each comma-separated range in `--pages` becomes its own file; with no `--pages`, every page is split into a separate file.
```bash
picmal-cli split-pdf book.pdf --pages 1-3,5,8-
picmal-cli split-pdf book.pdf
picmal-cli split-pdf *.pdf --pages 1-2 -o out/
```
| Flag | Description |
| ----------------------- | ---------------------------------------------------------------------------------- |
| `` | PDF files to split (positional, at least one). Each is split by the same ranges. |
| `--pages ` | Page ranges, 1-based: `N`, `N-M`, `N-` (N to end), `-M` (start to M), comma-separated. Default: one file per page. |
| `-o`, `--output ` | Output directory. Default: next to each input, as `-1.pdf`, `-2.pdf`, … |
| `-w`, `--overwrite` | Overwrite existing output files. |
Like `combine-pdfs`, it uses PDFKit and copies pages losslessly; password-protected inputs are refused. Unlock them first.
## images-to-pdf
Create a multi-page PDF from images, one image per page, in the order you pass them. Accepts the formats macOS decodes natively (jpg, png, heic, tiff, gif, bmp, webp, avif, jp2, jxl). EXIF orientation is applied, so sideways phone photos come out upright.
```bash
picmal-cli images-to-pdf scan1.jpg scan2.jpg
picmal-cli images-to-pdf *.png --page-size a4 --quality 70 -o album.pdf
picmal-cli images-to-pdf report.png --password secret
```
| Flag | Description |
| ----------------------- | ----------------------------------------------------------------------------- |
| `` | Image files, in page order (positional, at least one). |
| `--page-size ` | `fit` (page wraps each image, default), `a4`, `letter`, or `xmm` (e.g. `210x297mm`). Fixed sizes auto-rotate to each image's orientation. |
| `--quality ` | JPEG quality for embedded images, 40–100. Default `85`. |
| `--password ` | Password required to open the PDF. |
| `-o`, `--output ` | Output file or directory. Default: `.pdf` next to the first input. |
| `-w`, `--overwrite` | Overwrite an existing output file. |
## app-icons
Turn a single image into ready-to-ship app icons: a macOS `.icns`, a Windows `.ico`, and an iOS `.appiconset` you can drag into Xcode. Pass no format flag to generate all three. A non-square source is fit into the square without cropping, and the iOS icon is flattened onto an opaque background.
```bash
picmal-cli app-icons logo.png # all three formats
picmal-cli app-icons logo.png --macos # just .icns
picmal-cli app-icons logo.png --ios --windows -o icons/
```
Also available as `app-icon`, its name before 1.8.7.
| Flag | Description |
| ----------------------- | ---------------------------------------------------------------------------------------- |
| ` ` | Source image to generate icons from (positional). Use a square image ≥ 1024×1024 for crisp results. |
| `--macos` | Generate the macOS `.icns`. |
| `--windows` | Generate the Windows `.ico`. |
| `--ios` | Generate the iOS `.appiconset`. |
| `-o`, `--output ` | Output directory. Default: a ` App Icons` folder next to the source. |
| `-w`, `--overwrite` | Overwrite existing output files. |
Pass any combination of `--macos`, `--windows`, and `--ios` to pick formats; with none, all three are generated. See [App Icons](/docs/app-icons).
## remove-background
Cut the background out of one or more images and write each subject to a transparent PNG. It runs entirely on your Mac using Apple's Vision framework. Nothing is uploaded.
```bash
picmal-cli remove-background photo.jpg
picmal-cli remove-background *.png -o cutouts/
```
| Flag | Description |
| ----------------------- | ----------------------------------------------------------------------------------- |
| `` | Source image(s) to remove the background from (positional). |
| `-o`, `--output ` | Output directory. Default: `_removed.png` next to each source. |
| `-w`, `--overwrite` | Overwrite existing output files. |
| `--json` | Force JSON output. |
An image with no clear subject is skipped and reported, and the rest of the batch still runs. A batch with both successes and skips exits `9`, bad arguments exit `2`, and a missing input path exits `4` before any work starts. See [Remove Background](/docs/remove-background).
## merge-audio
Join two or more audio files into one, in the order you pass them. When every input shares the same codec, sample rate, and channels the streams are copied losslessly; mix formats and they're re-encoded to the output format instead.
```bash
picmal-cli merge-audio part1.mp3 part2.mp3
picmal-cli merge-audio intro.wav track.wav outro.wav -o full.wav
```
| Flag | Description |
| ----------------------- | ---------------------------------------------------------------------------------- |
| `` | Audio files to merge, in order (positional, at least two). |
| `-o`, `--output ` | Output file or directory. The extension sets the format. Default: ` (merged).` next to the first input, in that file's format. |
| `-w`, `--overwrite` | Overwrite an existing output file. |
Uses the same bundled ffmpeg as Convert and Compress. Decode-only formats (like APE) are refused as output targets. Pick a format Picmal can write.
## combine-videos
Join two or more videos into one, in the order you pass them. When every input shares the same codec, resolution, and frame rate the streams are copied losslessly; mix formats or sizes and each clip is scaled onto the first one's frame and re-encoded to match.
```bash
picmal-cli combine-videos clip1.mp4 clip2.mp4
picmal-cli combine-videos intro.mov main.mp4 outro.webm -o full.mp4
```
| Flag | Description |
| ----------------------- | ---------------------------------------------------------------------------------- |
| `` | Video files to combine, in order (positional, at least two). |
| `-o`, `--output ` | Output file or directory. The extension sets the format. Default: ` (combined).` next to the first input, in that file's format. |
| `-w`, `--overwrite` | Overwrite an existing output file. |
Uses the same bundled ffmpeg as Convert and Compress. H.264 for MP4/MOV/MKV, VP9 for WebM; H.264 encodes on the Mac's hardware media engine on both Apple Silicon and Intel. Decode-only formats are refused as output targets. Pick a format Picmal can write.
## slideshow
Turn still images into a video slideshow. Images appear in the order you pass them, each held for the same time. Every image is scaled to fit the frame and centered, with black filling the rest, so nothing is ever cropped.
```bash
picmal-cli slideshow photo1.jpg photo2.jpg photo3.jpg
picmal-cli slideshow *.heic --duration 5 --resolution 4k -o trip.mp4
```
| Flag | Description |
| ----------------------- | ---------------------------------------------------------------------------------- |
| `` | Image files, in the order they should appear (positional). |
| `-o`, `--output ` | Output file or directory. Default: ` (slideshow).mp4` next to the first input. |
| `--duration ` | Seconds each image is held. Default: `3`. |
| `--resolution ` | Frame size: `match`, `4k`, `1080p` or `720p`. Default: `1080p`. |
| `-w`, `--overwrite` | Overwrite an existing output file. |
Output is H.264 MP4 at 30 fps. `match` sizes the frame to your largest image; the presets are 16:9, rotated to match the orientation of most of the inputs. See [Video tools](/docs/video-tools#slideshow).
## split-chapters
Split a chaptered audiobook into one file per chapter. Picmal reads the chapter markers in an M4B/M4A audiobook (or any audio file that carries them) and writes one file per chapter, tagged with its title and track number. Pass several files to split them all.
```bash
picmal-cli split-chapters book.m4b # one m4b per chapter
picmal-cli split-chapters book.m4b --format mp3 # convert to mp3
picmal-cli split-chapters *.m4b --format mp3 -o out/
```
| Flag | Description |
| ----------------------- | ---------------------------------------------------------------------------------- |
| `` | Audiobook file(s) to split (positional). |
| `--format ` | Output format, e.g. `mp3`. Default: keep the input's format. |
| `-o`, `--output ` | Output directory. Default: next to each input. |
| `-w`, `--overwrite` | Overwrite existing output files. |
Outputs are named ` - 01 - .`. Files with no chapter markers are reported and skipped.
## presets
Browse the presets you've made in the app, plus the built-ins that ship with Picmal. Read-only. Make new ones in the app.
```bash
picmal-cli presets list
picmal-cli presets list --kind image
picmal-cli presets show "Balanced"
```
### list
| Flag | Description |
| ------------------------------ | ------------------------------- |
| `--kind ` | Only show presets of this kind. |
Text mode groups results under **Built-in** and **Custom**. JSON mode emits a `presets` array where each row carries `id`, `name`, `kind`, `source` (`"built-in"` or `"custom"`), and `description`.
### show
```bash
picmal-cli presets show "Maximum quality"
```
Takes a preset name (case-insensitive) and prints everything it contains:
- Image presets: per-format quality (`jpegQuality`, `webpQuality`, `pngLevel`, `heicQuality`, …) plus any resize / color / DPI sections.
- Audio presets: codec, bitrate mode, target bitrate, sample rate, bit depth, mono flag.
- Video presets: codec, CRF, encoding speed.
If a name exists across kinds (the built-in "Maximum quality" exists for image, audio, and video), `show` prints every match. Custom presets win over built-ins of the same name within the same kind.
### Using presets in compress / convert
Pass `--preset NAME` to either subcommand. The kind is matched against the input's category (image / audio / video), and the preset's values feed into the engine:
- Image preset → per-output-format quality, resize geometry, target color space, DPI.
- Audio preset → ffmpeg codec, bitrate, mono flag, sample rate, bit depth.
- Video preset → ffmpeg codec, CRF, encoding speed. Input audio is stream-copied.
Explicit flags always beat preset values. So `--preset "Maximum compression" --quality 95` gives you a high-quality output, not a tiny one.
You can't create custom presets from the CLI. Make them in the app first (see [image compression](/docs/image-compression) and [audio and video](/docs/audio-and-video)).
## formats
List the formats Picmal can read and write, grouped by category.
```bash
picmal-cli formats
picmal-cli formats --category image
picmal-cli formats --json | jq '.formats.image'
```
| Flag | Description |
| -------------------------------------------- | -------------------------------- |
| `--category ` | Restrict output to one category. |
## watch
Manage Picmal's watched folders from the terminal. The host app does the actual processing; `picmal-cli watch` only edits the list.
```bash
picmal-cli watch add ~/Screenshots --format webp --strip-metadata
picmal-cli watch add ~/Scans --action images-to-pdf
picmal-cli watch list
picmal-cli watch remove ~/Screenshots --yes
```
### watch add
| Flag | Description |
| ------------------------ | --------------------------------------------------- |
| `` | Folder path to watch (positional). |
| `-o`, `--output ` | Output destination. Defaults to the watched folder. |
| `-f`, `--format ` | Target format extension. Implies convert mode. |
| `--action ` | `compress`, `convert`, `images-to-pdf`, or `combine-pdf`. Default: `compress`, or `convert` when `--format` is given. |
| `-r`, `--recurse` | Watch subfolders recursively. |
| `-s`, `--strip-metadata` | Strip metadata from processed files. |
The batch actions collect what arrives instead of processing file by file: `images-to-pdf` turns the images that land within ten seconds of each other into one PDF, and `combine-pdf` merges the PDFs that land together into one, both in Finder name order. Page size, quality, and naming come from the folder's settings in the app. See [watched folders](/docs/watched-folders#actions).
### watch list
Lists every configured watched folder, with mode, format, output, and UUID.
### watch remove
```
picmal-cli watch remove [--yes]
```
Pass either the folder path or the UUID printed by `watch list`. `--yes` (`-y`) skips the confirmation prompt, which is required when stdout isn't a terminal.
## license-status
Prints whether the host app is licensed.
```bash
picmal-cli license-status
picmal-cli license-status --json
```
## version
Prints the bundled app version.
```bash
picmal-cli version
```
## Exit codes
`picmal-cli` uses stable exit codes so scripts can branch on them:
| Code | Meaning |
| ---- | ------------------------------------------------------------------------ |
| `0` | Success. |
| `1` | Generic failure (e.g. underlying tool reported a non-zero exit). |
| `2` | Usage error, bad arguments or missing required flag. |
| `3` | Unlicensed. |
| `4` | Input missing. |
| `5` | Unsupported format. |
| `7` | Cancelled (Ctrl+C). |
| `8` | Output write failure (output already exists without `-w`, disk full, …). |
| `9` | Partial success: some files succeeded, some failed in a batch. |
| `10` | A bundled tool (magick, ffmpeg) couldn't be located. Reinstall fixes it. |
| `11` | Input is corrupt or cannot be decoded. |
## JSON output
When stdout isn't a terminal (piped or redirected), `picmal-cli` emits NDJSON: one JSON object per line. Force it with `--json`, force text with `--text`.
Every event carries an `event` discriminator and an RFC 3339 `ts`. Successful file outputs go to **stdout**; errors, warnings, and progress go to **stderr**. The schema version is `1` and is included in the `started` event so consumers can detect breakages early.
Every batch command ends its stream with a `completed` event carrying `produced` and `failed` counts, always as the last line, so a script can tell a finished batch from a process that died mid-run. `convert`, `compress`, `crop`, `split-pdf`, and `remove-background` all emit it.
```json
{"event":"completed","produced":7,"failed":3,"ts":"2026-09-07T10:14:22Z"}
```
A `file` event can also carry a `notes` array when there is something you shouldn't miss. The only value today is `pdf_structure_dropped`, which means deeper PDF compression rebuilt that document and its links, bookmarks, and form fields did not survive. The field is omitted entirely when there is nothing to report, so existing consumers are unaffected.
Example pipeline:
```bash
picmal-cli compress -i ~/Pics -o ~/out --preset Balanced --json \
| jq -c 'select(.event=="file") | {input, output, savedPct: (1 - .bytesOut/.bytesIn)*100}'
```
---
# Clipboard optimization
> Picmal automatically compresses any image you copy to your Mac's clipboard, so you paste a lighter version every time.
Source: https://picmal.app/docs/clipboard-optimization
Clipboard optimization lets Picmal automatically compress images you copy to the clipboard. Copy a screenshot, an image from a browser, or a file in Finder. Picmal optimizes it in the background and shows a small overlay so you can instantly copy the lighter version.
## Setup
1. Open **Settings**
2. Enable **Optimize clipboard images** (under the Images tab)
3. Every image you copy is now automatically compressed in the background
## How it works
When you copy an image, Picmal detects it, compresses it using your current quality settings, and shows a floating overlay near the bottom-right corner of your screen.
The overlay shows:
- A **thumbnail** of the image
- The **original and compressed size** with the savings percentage
- A **Copy** button (appears on hover) to replace your clipboard with the optimized version
If the image is already as small as it can get, the overlay shows "Already optimized" instead.
After you click **Copy**, a brief "Copied" confirmation appears and the overlay dismisses automatically.
## Auto-copy
By default, you need to hover the overlay and click **Copy** to replace your clipboard with the compressed image. With **auto-copy** enabled, Picmal automatically copies the optimized image back to your clipboard as soon as compression finishes, no click needed.
The overlay still appears so you can see the size savings, but your clipboard is already updated.
Auto-copy is off by default. Toggle it in **Settings** under the Images tab.
## What gets detected
Picmal picks up images from two sources:
- **Screenshots and app copies**: taking a screenshot, copying an image from a browser, Preview, Photoshop, or any other app
- **Files copied in Finder**: selecting an image file and pressing **Cmd+C**
Non-image content like text, PDFs, and documents is ignored.
## Supported formats
| Format | Detected from |
| ------------------------ | ------------------------------ |
| PNG | Screenshots, app copies, files |
| JPEG | App copies, files |
| TIFF | App copies, files |
| HEIC | App copies, files |
| WebP | App copies, files |
| GIF | App copies, files |
| AVIF, BMP, JP2, JXL, SVG | Files only |
## Quality settings
Clipboard optimization uses the same compression settings you configure in Picmal's preferences, the same quality sliders that apply to regular compression. There are no separate settings for clipboard; adjusting your JPEG quality, PNG compression level, etc. applies everywhere.
## Overlay behavior
- The overlay floats above all windows without stealing focus from your current app
- Multiple overlays stack vertically if you copy several images in quick succession
- Hover over an overlay to reveal the **Copy** button and a dismiss (**X**) button
- Overlays can be dragged to reposition them
- The overlay auto-dismisses after a configurable timeout (5 seconds by default). You can adjust this in **Settings**
- The overlay is excluded from macOS screenshots, so your screen grabs stay clean
## Pasting the optimized image
When you click **Copy**, Picmal writes the optimized image to your clipboard in a way that works everywhere:
- **Paste into apps** (Slack, Mail, Notes, etc.), pastes the compressed image directly
- **Paste into Finder**: pastes the compressed file
## Requirements
- A valid Picmal license, or the [7-day trial](/docs/license#try-it-free)
- **Keep in menu bar** does not need to be enabled, clipboard optimization works as long as Picmal is running
## Tips
- Use clipboard optimization to shrink screenshots before pasting into Slack, email, or issue trackers
- Pair with **Start at login** so Picmal is always ready to optimize your copies
- If you don't need it temporarily, toggle it off in Settings, the feature has no impact when disabled
---
# Compressing Files
> Shrink image, audio, and video files on Mac without changing their format. Picmal's compress mode keeps the extension but cuts the size.
Source: https://picmal.app/docs/compressing-files
Compress mode reduces file size without changing the format. A JPEG stays a JPEG, just smaller.
## How to use
1. Switch to the **Compress** tab
2. Drop files into the window or click **Add Files**
3. Pick a preset or configure custom settings
4. Click **Compress**
Compressed files are saved with a `_compressed` suffix by default. You can change this to any pattern, including EXIF-based names like `{date}_{original}`, in **Settings → Output**. See [output and naming](/docs/output-and-naming).
If the compressed output isn't smaller than the original, Picmal discards it and leaves the original untouched.
## Space saved
When a batch finishes, Picmal totals up how much space you freed and shows it in the bottom bar and the completion notification, with a comparison to put the number in context, like "Freed up 9.66 GB · about a 4K movie 🎬".

## Image presets
| Preset | Best For | JPEG Quality | PNG Level |
| ------------------- | --------------------------------- | ------------ | ---------- |
| Maximum quality | Archival, print, master copies | 92% | 2 |
| High quality | Professional websites, portfolios | 85% | 3 |
| Balanced | General web use, documentation | 80% | 6 |
| Web optimized | Fast-loading websites | 75% | 7 |
| Social media | Instagram, X, Facebook | 70% | 8 |
| Maximum compression | Email attachments, slow networks | 60% | 9 |
| Custom | Your own settings | You choose | You choose |
## Audio presets
| Preset | Codec | Bitrate | Best For |
| ------------------- | ---------- | -------------- | -------------------------- |
| Maximum quality | FLAC | Lossless | Archival, music production |
| CD quality | FLAC | 16 bit / 44.1 kHz | Lossless CD-equivalent rips |
| High quality | AAC | 256 kbps | Music listening |
| Balanced | AAC | 192 kbps | General use |
| Podcast | Opus | 96 kbps | Speech, podcasts |
| Voice memo | Opus | 64 kbps (mono) | Voice recordings |
| Maximum compression | Opus | 48 kbps | Minimum file size |
| Custom | You choose | You choose | Your own settings |
## Video presets
| Preset | Codec | CRF | Speed | Best For |
| ------------------- | ---------- | ---------- | ---------- | --------------------- |
| Maximum quality | H.265 | 18 | Slow | Archival, mastering |
| High quality | H.265 | 20 | Slow | High-quality delivery |
| Balanced | H.265 | 23 | Medium | General use |
| Web optimized | H.264 | 23 | Medium | Maximum compatibility |
| Social media | H.264 | 25 | Fast | Social media uploads |
| Maximum compression | H.265 | 28 | Medium | Minimum file size |
| Custom | You choose | You choose | You choose | Your own settings |
## A preset per file
Convert and Compress both have a **Quality** column. Each row shows the preset that will run on that file: the one from Settings, until you pick another for that row alone. Compress one video hard and leave another balanced in the same batch, without running two passes.
It sets the bitrate and codec recipe, never the output format. The column was called **Preset** until 1.8.9, which led people to expect it to pick a second file type.
Your saved presets appear in the row menu alongside the built-ins, and the **Saving** estimate updates as soon as you change one.
To change several rows at once, tick their checkboxes (Compress has the same checkboxes as Convert, plus a **Select all videos** shortcut) and set the preset from the selection bar. Those ticks also decide which files the next run covers; see [run only the files you tick](/docs/managing-the-queue#run-only-the-files-you-tick).
A row with its own preset shows a small pin. Pinned rows keep their preset when you change the one in Settings; delete a custom preset and the rows using it fall back to Settings.
A per-file preset changes **compression quality only**. Resize, color space, and DPI still come from Settings and apply to the whole batch.
## Before/after preview
After compressing an image, click the screen icon on any processed file to open a before/after slider. Drag it around to compare the original and compressed versions side by side, useful for dialing in quality when you're not sure how far you can push it.
## Custom settings
Pick **Custom** to dial in your own quality, codec, bitrate, and other settings per format. See [image compression](/docs/image-compression) and [audio & video](/docs/audio-and-video) for details.
### Save your own presets
Once you've tuned settings you like, click **Save as preset**, give it a name, and it appears alongside the built-in presets the next time you compress. Custom presets work for images, audio, and video, so you can keep a "client delivery" or "podcast" preset a click away instead of re-entering values each time.
---
# Converting Files
> Convert images, audio, and video between formats on macOS. HEIC to JPEG, WAV to MP3, MOV to MP4, and more, all in batch.
Source: https://picmal.app/docs/converting-files
Convert mode changes a file from one format to another. For example, HEIC to JPEG, WAV to MP3, or MOV to MP4.
## How to use
1. Make sure you're on the **Convert** tab
2. Drop files into the window or click **Add Files**
3. Select the output format
4. Click **Convert**
## Optional compression during conversion
You can apply compression as part of the conversion. Enable **Compress output in convert mode** in Settings, then adjust the quality slider or pick a preset before converting. This lets you change format and reduce file size in one step.

## Smart format memory
Picmal remembers the last output format you selected for each input type. Drop a new file and it automatically picks the same format you used last time, no need to reselect. For example, if you always convert HEIC to JPG, Picmal will default to JPG whenever you drop a HEIC file.
## Before/after preview
After converting a file, click the screen icon on any processed file to open an interactive before/after slider. This lets you compare the original and converted versions side by side, useful for checking how a format change affects visual quality.
## Same-format conversions
You can convert a file to the same format it's already in. Every format lists itself as a target, though it's never the default pick. This is useful for resampling audio (for example, FLAC to FLAC at a different sample rate) without changing the codec, and for re-encoding an image at your compression quality, a WebP to WebP pass shrinks the file instead of pushing it out to PNG or JPG. Video works the same way: MP4 to MP4 lets you change codec, resolution, or frame rate without leaving the container you started in. Because a same-format pass with compression off can only leave the file the same size or bigger, Picmal always compresses these. Same-format conversions follow your convert naming pattern (default `{original}_converted`), so the output lands beside the original instead of overwriting it. Adjust the pattern, prefix, or suffix in **Settings → Output**; see [output and naming](/docs/output-and-naming).
## Apple icon files
Drop an `.icns` in and convert it to PNG, JPG, or any other image format. An icon file holds every size from 16 px up to 1024, and by default you get the largest one, named and placed like any other conversion.
To get a different size, open **Settings → Images → Icon output size**:
| Choice | What you get |
| ------ | ------------ |
| **Largest available** | One image at the biggest size inside the icon. The default. |
| **All sizes** | One file per embedded size, named `-1024x1024.png`, `-512x512.png`, and so on. |
| **1024 px** … **16 px** | One image at that size, if the icon holds it. |
Sizes stored twice inside the icon (a `256x256` and a `128x128@2x`, say) come out once. All the outputs land in the output folder you picked, not next to the source.
This works from the command line too, with the same choice on `--icon-size`:
```bash
picmal-cli convert -i icon.icns -f png -o ~/out
picmal-cli convert -i icon.icns -f png -o ~/out --icon-size 256
picmal-cli convert -i icon.icns -f png -o ~/out --icon-size all
```
Picmal reads `.icns` but doesn't write it here. To make one from an image, use [App Icons](/docs/app-icons).
## Format compatibility
Picmal converts within the same media type:
- **Image → Image** (e.g., PNG → JPEG, HEIC → WebP)
- **Audio → Audio** (e.g., WAV → MP3, FLAC → AAC)
- **Video → Video** (e.g., MOV → MP4, AVI → WebM)
You can also extract audio from video, for example, MP4 to MP3.
## Metadata control
Choose how metadata is handled during conversion:
| Mode | What It Does |
| -------------- | --------------------------------------------------- |
| Strip all | Smallest files, but removes the original's camera, date, and copyright info |
| Keep essential | Keeps orientation, color profile, and copyright; drops location and serial numbers |
| Keep all | Preserves all original metadata |
Picmal spells out this trade-off under the picker as you choose, so stripping never surprises you.
### Copyright and ownership
Add your own ownership details to every image you export. Open **Settings → General → Copyright & ownership** and fill in any of these fields:
- **Copyright notice**: e.g. `© 2026 Jane Doe`
- **Artist / Creator**: the photographer or author
- **Credit**: attribution or photo credit
- **Contact / URL**: a website, email, or phone number
Picmal writes them into the standard EXIF, IPTC, and XMP fields, so other apps (Photos, Lightroom, Finder's Get Info, stock libraries) read them back. Values you enter always overwrite whatever was on the original.
You only enter this once. Picmal saves it as your default profile and reuses it on every export. Use the **Add my copyright to exported images** switch to turn it on or off without clearing the fields.
This works in every metadata mode, including **Strip all**. Strip removes the camera, GPS, and other identifying data, then Picmal stamps your copyright back on, so the output carries only your ownership info and nothing else. To embed copyright on the command line, see the [`--copyright`/`--artist` flags](/docs/cli#convert).
### Inspecting metadata
Click the ⓘ button next to a file to see its metadata. Before converting it shows the original. Once a file finishes, the popover gains an **Original / Result** switch and opens on **Result** (the metadata actually written to the output) so you can confirm at a glance that your copyright landed and that camera and location data came off. The button appears even when the original had no metadata, so copyright you added is always verifiable.
### RAW photos
Converting RAW photos (NEF, CR2, ARW, RAF, DNG) keeps your camera metadata. With **Keep all**, the output JPEG carries the make, model, lens, exposure, capture date, and GPS. **Keep essential** keeps the basics while dropping location and serial numbers. The metadata indicator reads RAW files too, so it shows what's actually there instead of appearing empty.

See [Supported formats](/docs/supported-formats) for the full list of input and output formats.
---
# Crop
> Trim margins off images and PDFs on your Mac. Type the pixels or millimeters to remove from each edge, or auto-trim a solid-color border, in one batch.
Source: https://picmal.app/docs/crop
Picmal's sidebar has a **Crop** tool that removes margins from images and PDF pages. Type how much to take off each edge and Picmal saves a cropped copy next to each original. Everything runs on your Mac.
Images are measured in **pixels**, PDFs in **millimeters**. The unit label above the margin fields follows whatever you've dropped in.
## Crop a batch
1. Select **Crop** in the sidebar
2. Drop images, PDFs, or both into the window
3. Open **Crop Options** and set the margins to remove
4. Click **Crop**

Each file is written next to its source as `_cropped.`. The **After crop** column shows the size you'll get before you run anything, so you can check the numbers against the original.
## Auto-trim borders
Turn on **Auto-trim borders** in the options popover and Picmal reads the corner color of each image and removes the matching border around it, the white space around a screenshot, the black bars around an exported logo. No measuring, no per-file fiddling.
**Tolerance** (0–50%, default 5%) sets how much the border color may vary before Picmal stops trimming. Raise it for a JPEG whose "white" background isn't quite uniform; lower it when a light part of the subject is being eaten.
Auto-trim is images only. PDFs need explicit margins.
## PDFs keep their content
Cropping a PDF changes the page boxes, nothing else. Text stays selectable and searchable, links keep working, form fields keep working, and vector graphics stay sharp, the page is just smaller. Picmal sets both the crop box and the media box, so the new size holds in Preview, in a browser, and at the print shop.
The same margin is applied to every page in the document.
## Trim borders in Convert and Compress
You don't need the Crop tool for a plain border trim. **Settings → Resize** has a **Trim borders** switch that removes a solid-color border from each image before it's resized and encoded, at the same 5% tolerance. Turn it on when every screenshot in a batch carries the same margin. See [resize and color space](/docs/resize-and-color-space#trim-borders).
For another tolerance, or for PDFs, use the Crop tool or `picmal-cli crop --fuzz`.
## Use it from Shortcuts and the terminal
- In Shortcuts, the **Crop Files** action takes files, margins, and an auto-trim toggle, and returns the cropped files. See [Integrations](/docs/integrations#crop-files).
- From the terminal, `picmal-cli crop` takes `--top`, `--bottom`, `--left`, `--right`, `--auto-trim`, and `--fuzz`. See [Command line](/docs/cli#crop).
Like Convert and Compress, Crop requires the [free trial or a license](/docs/license).
---
# Download Video
> Paste video links into Picmal and download them to any folder on your Mac. Best, 1080p, or audio only, with each file checked so it opens in QuickTime.
Source: https://picmal.app/docs/download-video
Picmal's sidebar has a **Download Video** tool. Paste links, pick a folder, and Picmal fetches the videos to your Mac.
## Download a batch
1. Select **Download Video** in the sidebar
2. Add links. Click **Add Links** and paste one per line, press ⌘V in the window, or drag a link straight from your browser's address bar
3. Choose where the files go (Picmal starts on your Downloads folder and remembers your choice)
4. Pick a quality for the batch
5. Click **Download**

Each row shows its own progress, download speed, and estimated time remaining. When the batch finishes, the bottom bar says how many videos were saved and gives you a **Show in Finder** link.
## Quality
One picker sets the quality for every link in the list.
| Option | What you get |
| ---------- | ------------------------------------------------------------------- |
| Best | The highest resolution the link offers, as an MP4. Default. |
| 1080p | Capped at 1080p, for a smaller file on a 4K source. |
| Audio only | The audio track on its own, with no video and no re-encode. |
## Files that actually play
Sites hand out AV1 and VP9, and QuickTime refuses both with "contains some media that isn't compatible". Picmal checks every finished file: if the container can simply be rewrapped it does that, and if the footage really has to change it re-encodes, the row says **Converting** while it works. Files that already play are left exactly as they arrived.
Audio-only downloads pick an audio stream directly rather than extracting one, so there's no re-encode and no quality loss.
## When a link fails
The row tells you why in plain words rather than handing you raw tool output: the video is private or needs a sign-in, it isn't available in your region, the link is dead, the site is rate-limiting you, the disk is full, or Picmal can't save to that folder. Failed rows don't stop the rest of the batch.
Cancel a download and Picmal cleans up after itself, no half-written files left next to your finished videos.
## Fair use
Download Video is for content you have the right to save: your own uploads, material you've licensed, and videos whose terms allow it. Check the site's terms before you download, and don't use it on copy-protected streams, those are refused anyway.
Download Video is app-only for now. There's no Finder, Shortcuts, or command-line equivalent yet.
Like Convert and Compress, it requires the [free trial or a license](/docs/license).
---
# FAQ and troubleshooting
> Answers to common Picmal questions, privacy, file size results, format support, license activation, and fixes for typical issues on macOS.
Source: https://picmal.app/docs/faq
## Does Picmal send my files anywhere?
No. Everything happens locally on your Mac. No files are uploaded, no internet is required for processing. The only network calls are starting the trial and activating a license.
## Why does a file show "Already optimized"?
Compressing it wouldn't have made it smaller, so Picmal kept your original untouched. This is common with files that are already well compressed, and with PDFs whose size comes from text and fonts rather than images. There's simply nothing left to squeeze. Picmal never delivers a file larger than the one you started with.
## AI files aren't converting?
Picmal reads Illustrator files through their PDF layer. Almost every `.ai` file made this century has one. It's on by default when saving from Illustrator. If yours doesn't convert, re-save it from Illustrator with **Create PDF Compatible File** enabled and try again.
EPS files are no longer supported: they're PostScript, which macOS itself stopped being able to read, and keeping support meant bundling a 47 MB interpreter most users never touched. If you have EPS files to convert, open them in Illustrator or Affinity Designer and export a PDF first.
## Can I undo a conversion?
Your original files are never modified. Converted and compressed files are saved as new files alongside the originals (unless you've enabled overwrite or delete-originals in watched folder settings).
## How do I process files automatically?
Use [watched folders](/docs/watched-folders). Set up a folder, configure your preferred settings, and any file added to that folder is processed automatically.
For more control, use [Shortcuts](/docs/integrations#shortcuts-app) to build custom automations.
## My license isn't working on a new Mac
You need to deactivate the license on your old Mac first. Open **Picmal** → **Register license** → **Deactivate** on the old machine, then activate on the new one.
If you no longer have access to the old Mac, you can [deactivate it remotely through the license portal](/docs/license#deactivate).
## What formats are input-only?
RAW camera formats (ARW, CR2, DNG, NEF, RAF) and Illustrator files (AI) can be read and converted to other formats, but Picmal cannot write to them. See [Supported Formats](/docs/supported-formats#input-only-formats) for the full list.
## Can I process multiple files at once?
Yes. Drop multiple files or entire folders into Picmal. Batch processing works in both Convert and Compress modes, as well as in Watched Folders.
## Does Picmal require Homebrew or other dependencies?
No. Picmal is fully self-contained. All processing tools are bundled with the app.
---
# Image compression
> Picmal's image compression presets and quality controls. Pick a one-click preset or fine-tune quality per format with the custom slider.
Source: https://picmal.app/docs/image-compression
## Presets vs custom
Picmal ships with six built-in presets that apply sensible quality settings across all image formats. Pick **Custom** if you want full control over the quality slider for each format.
See [compressing files](/docs/compressing-files) for the presets table.
## Lossy formats (Quality 0–100)
These formats use a quality percentage where **higher = better quality, larger file**.
| Format | Range | Default | Notes |
| ------ | ----- | ------- | -------------------------------------------- |
| JPEG | 0–100 | 85 | Most common. 80–90 is usually the sweet spot |
| WebP | 0–100 | 85 | Excellent compression, modern browsers |
| HEIC | 0–100 | 85 | Apple ecosystem, great compression |
| AVIF | 0–100 | 85 | Next-gen, best compression ratios |
| TIFF | 0–100 | 85 | Archival/print use |
| PDF | 0–100 | 85 | Quality of the images inside the PDF, text stays selectable |
| JP2 | 0–100 | 85 | JPEG 2000 |
| JXL | 0–100 | 85 | JPEG XL |
| EXR | 0–100 | 85 | HDR imagery |
| PSD | 0–100 | 85 | Photoshop files |
| BMP | 0–100 | 85 | Bitmap |
| TGA | 0–100 | 85 | Targa |
| DDS | 0–100 | 85 | DirectDraw Surface |
| SGI | 0–100 | 85 | Silicon Graphics |
| QOI | 0–100 | 85 | Quite OK Image |
## How PDF compression works
Picmal re-compresses the images embedded inside a PDF and leaves everything else alone: text stays selectable, links keep working, and vector graphics stay sharp.
This matters more than it sounds. A web article saved as PDF often *looks* like a text document but is almost entirely image data, browsers store photos losslessly when printing to PDF, so a three-page article can carry a single photo that makes up 97% of the file. Picmal re-encodes that photo as JPEG at your chosen quality and typically saves 60–80% without touching a word of the text.
The flip side: a PDF that really is mostly text and fonts has almost nothing to remove. When that happens, Picmal says so, the Saving column shows **Already optimized** and your original is kept byte-for-byte.
Scanned documents are the other case. There the picture *is* the page, so re-encoding it at its original size only goes so far. Picmal lowers the resolution of the images inside to match the quality you picked. A 25 MB scan typically lands around 2 MB, and because only the pictures are touched, the text stays real text you can select and search.
Squeezing a document that hard means rebuilding it, and a rebuilt PDF loses its links, bookmarks, and form fields. When your file has any of those, Picmal shows a warning on the row rather than dropping them quietly. Scans and photo exports have none, so they compress with no warning at all.
## Never larger than the original
When you compress a file, Picmal compares the result against the source and keeps whichever is smaller. If a compression pass wouldn't actually save space, your original is left untouched, so you never end up with a file bigger than the one you started with.
## Compress to a target file size
Need an image under a specific size? Turn on resizing and pick **Max File Size**, then type a budget like 100 KB or 2 MB. Picmal scales the image down just enough to fit. See [resize](/docs/resize-and-color-space#max-file-size) for details.
## Level-based formats (1–9)
These formats use a compression level where **higher = more compression, smaller file** (but processing takes longer).
| Format | Range | Default | Notes |
| ------ | ----- | ------- | -------------------------------------------------------- |
| PNG | 1–9 | 9 | Level affects how hard Picmal tries, not how the image looks |
| GIF | 1–9 | 7 | Higher levels mean more aggressive optimization |
| SVG | 1–9 | 7 | Optimization level for SVG cleanup |
PNG at level 9 is worth using. It runs a lossy palette pass first and a lossless squeeze after, and on a photographic PNG it regularly halves the file. Drop the level if you want the palette left alone.
## PDF rasterization DPI
When converting PDFs to JPG or PNG, Picmal rasterizes each page at a chosen DPI. Higher DPI means sharper output and larger files. Pick the resolution in **Settings → Images**:
| DPI | Best For |
| --- | --------------------------------- |
| 72 | Quick thumbnails, screen previews |
| 150 | General web use (default) |
| 300 | Print-ready output |
| 600 | High-quality print, fine detail |
The default is 150, which keeps output crisp without bloating file sizes on multi-page documents.

## Quick Guide: What preset should I use?
| Use Case | Recommended Preset |
| ------------------------------------ | ------------------- |
| Archiving photos, printing | Maximum quality |
| Portfolio website, client delivery | High quality |
| Blog posts, documentation | Balanced |
| Landing pages, e-commerce | Web optimized |
| Social media posts | Social media |
| Email attachments, bandwidth-limited | Maximum compression |
| Specific needs | Custom |
---
# Integrations
> Use Picmal from anywhere on macOS. Drag and drop, the share menu, Finder Quick Actions, the Services menu, Shortcuts automations, Raycast, and the menu bar app.
Source: https://picmal.app/docs/integrations
## Drag & drop
Drop files onto Picmal in three ways:
- **App window**. Drop files directly into the main window
- **Dock icon**. Drop files onto the Picmal icon in your Dock
- **Menu bar icon**. Drop files onto the menu bar icon (when menu bar mode is enabled)
You can drop individual files or entire folders.
## Finder services (right-click menu)
Picmal adds five services to Finder's right-click menu:
1. **Picmal — Compress**. Compresses the selected files right away
2. **Picmal — Convert**. Converts the selected files right away
3. **Picmal — Add Files**. Adds the selected files to the Picmal window without processing them, so you can tweak settings first
4. **Picmal — Combine PDFs**. Merges the selected PDFs into one, in selection order. Only appears when every selected file is a PDF
5. **Picmal — Images to PDF**. Turns the selected images into a multi-page PDF. Only appears when every selected file is an image
To enable these services:
1. Open **System Settings** (or System Preferences)
2. Go to **Keyboard → Keyboard Shortcuts → Services**
3. Scroll to the **Files and Folders** section
4. Check the Picmal entries you want

Once enabled, select files in Finder, right-click, and find them under **Services** (or **Quick Actions**).
Picmal's services only appear for files it can actually handle, images, audio, video, and PDFs. Select a folder, an archive, or an application and they stay out of the menu.

### Services use your current settings
Compress and Convert from Finder use whatever you've already set up in the app. There's no separate dialog. Your quality preset, output format, resize and color-space options, metadata handling, the file-naming pattern, and where files get saved all apply.
So set things up the way you want them in Picmal before you lean on the services:
- **Where files go.** By default, outputs sit next to the originals. To send them to a subfolder instead, turn on **Settings → Output → Save outputs in a subfolder** and give it a name. The services respect this the same way the app does; with it off, files land beside the source. See [Output and naming](/docs/output-and-naming).
- **File names, the quality preset, and the output format** come from your current settings too, so adjust them under **Settings** first.
- **Combine PDFs** merges in Finder's selection order and saves ` (combined).pdf` next to the originals. **Images to PDF** uses your saved page size and quality from the [PDF tools](/docs/pdf-tools) options (passwords never apply to service runs) and saves `.pdf`. Want to reorder pages first? Open the tool in the app instead.
Want to check or change settings for a specific batch first? Use **Picmal — Add Files** instead. It drops the files into the window so you can pick your options and hit Compress or Convert yourself.
### Running with the app closed
You don't need Picmal open. **Picmal — Compress**, **Picmal — Convert**, **Picmal — Combine PDFs**, and **Picmal — Images to PDF** run in the background without opening the window, post a notification when they're done, and quit on their own. If the app is already open, they run there and it stays open. **Picmal — Add Files** always opens the window so you can see what's queued.
## Shortcuts app
Picmal provides ten actions for Apple's Shortcuts app, so you can build automated workflows. The actions need a license; the 7-day trial does not cover them.

### Convert files
| Parameter | Description |
| ------------- | --------------------------- |
| Files | The files to convert |
| Output format | Target format |
| Preset | Compression preset to apply |
### Compress files
| Parameter | Description |
| --------------- | ---------------------------------------------- |
| Files | The files to compress |
| Preset | Compression preset |
| Custom quality | Quality value (1–100) when using Custom preset |
| Remove metadata | Strip metadata from output |
### Crop Files
| Parameter | Description |
| ------------------ | ------------------------------------------------------------------ |
| Files | The images or PDFs to crop |
| Auto-Trim Borders | Images only: remove a solid-color border by reading the corner color |
| Auto-Trim Tolerance| How much the border color may vary, 0–50% (default 5) |
| Top / Bottom / Left / Right | Margin to remove from each edge, pixels for images, millimeters for PDFs |
Returns the cropped files, ready for a "Save File" action or the next step. See [Crop](/docs/crop).
### Combine PDFs
| Parameter | Description |
| --------- | -------------------------------------------- |
| PDFs | The PDFs to merge, in page order (two or more) |
Returns the merged PDF, ready for a "Save File" action or the next step in your shortcut.
### Split PDF
| Parameter | Description |
| ----------- | ----------------------------------------------------------------- |
| PDF | The PDF to split |
| Page ranges | Ranges like `1-3, 5, 8-`. Leave blank to split every page separately |
Returns the split PDFs as a list of files, ready for a "Save File" action or the next step.
### Images to PDF
| Parameter | Description |
| --------- | --------------------------------------------------------------- |
| Images | The images to place on pages, in order |
| Page size | Fit to Image, A4, or US Letter |
| Quality | JPEG quality for embedded images (40–100) |
| Password | Optional password required to open the PDF |
Returns the finished PDF.
### Merge Audio
| Parameter | Description |
| ----------- | --------------------------------------------------- |
| Audio Files | The audio files to join, in order (two or more) |
Returns the merged track, ready for a "Save File" action or the next step. Same-format files are joined losslessly; mixed formats are re-encoded to match the first file. See [Audio tools](/docs/audio-tools).
### Combine Videos
| Parameter | Description |
| --------- | ------------------------------------------------- |
| Videos | The videos to join, in order (two or more) |
Returns the combined video, ready for a "Save File" action or the next step. Matching clips are joined losslessly; mismatched ones are scaled and re-encoded to match the first. See [Video tools](/docs/video-tools).
### App Icons
| Parameter | Description |
| --------- | ---------------------------------------------------- |
| Image | The source image to generate icons from |
Returns the app icon files, a macOS `.icns`, a Windows `.ico`, and an iOS icon set. See [App Icons](/docs/app-icons).
### Remove Background
| Parameter | Description |
| --------- | ----------------------------------------------- |
| Images | The image(s) to cut the background out of |
Returns transparent PNGs with the background removed, ready for a "Save File" action or the next step. It runs on-device, so nothing is uploaded. See [Remove Background](/docs/remove-background).
Use these to build automations like "compress every screenshot I take," "convert HEIC photos to JPEG when added to a folder," or "merge this month's invoices into one PDF."
### Ready-made shortcuts
Ready-made shortcuts to get you started. Click any link to add it to your Shortcuts app:
- [Convert file (with Picmal)](https://www.icloud.com/shortcuts/00bf8518dd414c20b0ce31d9da8415e3)
- [Compress file (with Picmal)](https://www.icloud.com/shortcuts/16566c74e2554dd7aacd2078b4c864c6)
- [Combine PDFs (with Picmal)](https://www.icloud.com/shortcuts/c43669db2eb446619afb33e47efda649)
- [Images to PDF (with Picmal)](https://www.icloud.com/shortcuts/ec32a8c7305c44c89f37a39785c46b23)
## Raycast
Picmal has a [Raycast extension](https://www.raycast.com/albertogalca/picmal). Install it from the Raycast Store, or search for "Picmal" in Raycast's Store command. It drives the app you already have installed, so there's nothing to configure: no API key, no separate download. You need Picmal installed and licensed; the 7-day trial does not cover Raycast.
It adds eight commands:
- **Convert Files**. Change format across images, audio, and video, with optional compression and metadata removal
- **Compress Files**. Shrink files while keeping the format, using a built-in or custom preset
- **Combine PDFs**. Merge PDFs into one, in the order you pick
- **Split PDF**. Split a PDF into one document per page range, or one PDF per page. See [PDF tools](/docs/pdf-tools)
- **Images to PDF**. Build a multi-page PDF from images, with page size, quality, and an optional password
- **Merge Audio**. Join audio files into a single track, losslessly when they share a format. See [Audio tools](/docs/audio-tools)
- **Combine Videos**. Join clips into one video, losslessly when they match. See [Video tools](/docs/video-tools)
- **Generate App Icons**. Turn one image into a macOS `.icns`, a Windows `.ico`, and an iOS icon set. See [App Icons](/docs/app-icons)
Point them at the files you've selected in Finder, or pick files from Raycast itself.
### Raycast AI
The extension also ships AI tools for converting, compressing, combining PDFs, splitting PDFs, building PDFs from images, combining videos, and generating app icons, so you can just ask:
- `@picmal convert these to webp`
- `@picmal compress the selected videos`
- `@picmal split this PDF into pages 1-3 and 4-8`
Everything still runs locally on your Mac, the same as the app.
## Menu bar mode
Enable **keep in menu bar** in Settings to add a Picmal icon to your menu bar. The app stays running in the background even when the main window is closed.
Click the icon to open the menu, or drop files directly onto it to process them.
### Quick actions
| Item | Shortcut | Action |
| ------------------- | -------- | ------------------------------------------------------------- |
| Add Files… | ⇧⌘O | Pick a file with the system file picker and run it through the clipboard pipeline |
| Optimize Clipboard |, | Toggle [clipboard optimization](/docs/clipboard-optimization) on or off |
| On Copy |, | Choose what happens when you copy: Compress, Convert, or both. Greyed out when monitoring is off |
| Target Format |, | When the action involves conversion, pick the output format. Hidden in Compress-only mode |
| Auto-Copy Result |, | Toggle [auto-copy](/docs/clipboard-optimization#auto-copy) without opening Settings |
| Open Picmal | O | Open the main window |
| Settings… | , | Open Settings |
| Quit Picmal | Q | Quit Picmal |
The clipboard quick controls bind to the same values as **Settings → Images**, so the menu and Preferences always stay in sync.
## Start at login
Enable **start at login** in Settings so Picmal launches when you log in. Together with menu bar mode and watched folders, that means processing keeps running after a reboot without you having to open the app.
---
# License
> How to activate, manage, and transfer your Picmal license key on macOS, including device limits and recovering a lost key.
Source: https://picmal.app/docs/license
## Try it free
Every download starts with a 7-day trial. Open Picmal and press **Try free** in the sidebar: every tool runs on that Mac for 7 days, no key, no card, no account.
The trial is tied to the Mac, so a reinstall does not restart it. The command line, Shortcuts, Raycast and watched folders need a license.
## Activate your license
1. In the menu bar, open **Picmal** → **Register license**
2. Enter your license key
3. Click **Activate**
Your license is tied to your Mac and stored securely in the keychain. It works offline after the initial activation.
## Deactivate
If you're moving to a new Mac, deactivate your license first:
1. In the menu bar, open **Picmal** → **Register license**
2. Click **Deactivate**
This frees up the license so you can activate it on another machine.
You can also deactivate a device remotely from the license portal, handy if you no longer have access to the old Mac:
1. Go to the [license portal](https://licenses.albertogalca.com/portal/recoveries/new?product=picmal)
2. Enter your purchase email. You'll get a sign-in link
3. Open the link, find the device, and click **Deactivate**
## Activate from the run button
You don't have to find the menu. Press **Convert**, **Compress**, or the run button in any other tool without a license and Picmal asks for one on the spot. Enter your key and the run starts as usual, with the files still in the window.
## Buy a license
Visit [picmal.app](https://picmal.app) to purchase a license. Payments are processed securely through [Stripe](https://stripe.com).
## Lost your license key?
If you can't find your license key or the original email:
1. Go to the [license portal](https://licenses.albertogalca.com/portal/recoveries/new?product=picmal)
2. Enter the email address you used when purchasing
3. You'll receive a sign-in link along with your license keys
The same portal is where you sign in with the emailed link to see your keys and the Macs they're active on. Picmal has nothing to renew.
---
# Managing the queue
> Control a batch while it runs in Picmal. Set per-file priority, pause and resume, cancel, and use the right-click menu to show files in Finder or remove them.
Source: https://picmal.app/docs/managing-the-queue
Picmal processes files as a queue. You can drop up to 10,000 files at once and manage the batch while it runs: reorder by priority, pause, resume, or cancel without losing your place.
## Right-click menu
Right-click any file in the list to:
- **Show in Finder**: reveal the source file (or its output) in Finder
- **Set priority**. High, Normal, or Low (see below)
- **Remove from list**. Drop the file from the queue
Show in Finder lives in this menu now, so there's no separate "File" column taking up space in the table.
Double-clicking a row does the same thing, in every tool list: it reveals the converted file once that exists, and the original before it does.

## Run only the files you tick
Every row in Convert and Compress has a checkbox. Tick a few and the run covers those files only; leave them all unticked and the run covers the whole list. The progress bar counts the files in the run, so a partial batch still reaches 100%.
Handy when a long batch failed halfway, or when you've added new files to a list that's already finished: tick the ones you want and leave the rest alone instead of re-encoding everything. A [scheduled](#schedule-for-later) run uses the same selection, so it won't sweep up whatever else is sitting in the window when it fires.
The same checkboxes set a [preset for several rows at once](/docs/compressing-files#a-preset-per-file).
## File priority
Give an urgent file a head start. Right-click it and pick **High**, **Normal**, or **Low** priority. High-priority files jump to the front and get processed first, even mid-batch. Bump a file up while a large queue is already running and it gets picked up next, rather than waiting for everything ahead of it.
## Pause and resume
Click **Pause** to halt the batch, and **Resume** to pick up where you left off. Pause stops files that are mid-conversion too, not just the ones still waiting, so it takes effect immediately rather than finishing the current file first.

## Cancel
Click **Cancel** to stop the batch. Picmal stops quickly and tidies up after itself: any file that was interrupted returns to **Waiting** instead of looking stuck, so you can restart the batch cleanly.
## Watching progress
While a batch runs, the file list scrolls smoothly and each file shows its own progress. The "X of Y files" counter at the bottom tracks the whole batch and updates all the way to the total. For audio and video, Picmal also shows the conversion speed and an estimated time remaining.
The sidebar keeps track too: a small ring and a percentage appear next to the tool that's working, so a batch you started stays visible while you look at something else. Convert, Compress, Crop, Split PDF, and Remove Background show a real percentage. The other tools show that they're busy without a number.
## When the batch is done
Convert and Compress finish with a summary line in the bottom bar: "Done · 12 files converted", how much space you got back, and a **Show in Finder** link. It stays until you clear the list or run again.
If some files broke, the line says so. Ten files in with three failures reads "Finished · 7 files converted · 3 failed", under a warning glyph instead of the tick, so a partial batch never looks like a clean one.
### Retry only the files that failed
After a batch with failures, the **Run Again** button becomes **Retry Failed**, with the count on it. Press it and Picmal re-runs those files alone. The ones that finished keep their tick and their savings figure, and nothing gets encoded twice.
If Picmal is the app in front of you, that summary line is the whole notification: nothing beeps, because the window already says what happened. Results that arrive while you're elsewhere stack rather than overwriting each other.
## Schedule for later
Don't want a big batch hogging your Mac right now? Tap the **clock button** next to **Convert** (or **Compress**) and pick a start time. Handy for kicking off large jobs overnight. The bottom bar shows what's queued and when it'll run, you get a notification when it finishes, and a scheduled batch survives quitting and reopening Picmal, so you don't have to leave the app open in the meantime.

---
# Metadata
> Control exactly what EXIF, GPS, and copyright data stays in your exports with Picmal. Strip everything, keep the essentials, or pick category by category, and stamp your own ownership tags on every photo.
Source: https://picmal.app/docs/metadata
Every photo carries hidden data: where it was taken, what camera shot it, the date, serial numbers, and more. Picmal lets you decide exactly how much of that travels with your exports. Strip it all for privacy, keep it all for your archive, or choose category by category. You can also stamp your own copyright onto every file, even while stripping everything else.
The metadata controls live in **Settings → General**, under the **Metadata** and **Copyright & ownership** sections. Whatever you pick applies to both Convert and Compress, and to images, audio, and video.
## Choosing what to keep
Pick one of four modes:
| Mode | What it does |
| ---------------------- | --------------------------------------------------------------------------------------------- |
| Strip all metadata | Smallest files. Removes the original's camera, date, location, and copyright info. |
| Keep essential only | Keeps orientation, color profile, and copyright; drops location and serial numbers. |
| Keep all metadata | Preserves all of the original's metadata. |
| Choose what to keep… | Custom mode. Pick exactly which categories survive (see below). |
Stripping metadata makes files smaller and protects your privacy. Keeping it is useful for archiving, attribution, and keeping a photo's camera and capture details intact.
## Custom: category by category
Choose **Choose what to keep…** and Picmal shows a checklist. Each category is independent, so you can (for example) drop location and serial numbers while keeping everything else:
| Category | What it covers |
| ------------------- | --------------------------------------------------------- |
| Location (GPS) | GPS coordinates of where the photo was taken |
| Camera & exposure | Make, model, lens, and exposure settings |
| Date & time taken | When the photo was captured |
| Copyright & author | Copyright notice, author, and credit |
| Color profile (ICC) | Embedded ICC color profile |
| Orientation | Rotation tag describing how to display the image |
| Serial & owner IDs | Camera body / lens serial numbers and owner name |
| Embedded thumbnail | Small preview embedded by the original camera |
The most common privacy combo: keep camera, date, and color profile, but uncheck **Location (GPS)** and **Serial & owner IDs** so you can share photos without leaking where you live or which camera is yours.
## Add your own copyright
Fill in the **Copyright & ownership** fields once and Picmal stamps them into every export across EXIF, IPTC, and XMP:
- **Copyright notice**: e.g. `© 2026 Jane Doe`
- **Artist / Creator**
- **Credit**
- **Contact / URL**
Your copyright is written **even when you're stripping everything else**, the camera and location data come off, your ownership tags stay on. Type it once; it's saved and reused on every export. Toggle **Add my copyright to exported images** off to keep your details on file without applying them.
## RAW photos
When you convert RAW files (NEF, CR2, ARW, RAF, DNG and more), Picmal carries your camera metadata into the output JPEG. With **Keep all metadata** the export keeps make, model, lens, exposure, date, and GPS. **Keep essential only** keeps the basics while dropping location and serial numbers.

## Check what landed
After a file finishes, click the **ⓘ** button in the Size column. It opens on **Result** with an Original / Result switch, so you can confirm at a glance that your copyright landed and the camera and location data came off, even on files that started with no metadata at all.
## Related settings
- [Orientation](/docs/resize-and-color-space#orientation). Auto-fix physically rotates pixels and removes the orientation tag.
- [Color space and DPI](/docs/resize-and-color-space), covers the ICC color profile that the Color profile category preserves.
- [Output and naming](/docs/output-and-naming). Rename exports from their EXIF metadata using `{camera}`, `{iso}`, `{date}` and other tokens.
- [Command line (CLI)](/docs/cli#metadata), the same controls as `--metadata`, `--keep`, `--strip`, and the `--copyright` flags.
---
# Output and naming
> Control where Picmal saves converted files and how it names them, subfolders, suffixes, prefixes, and overwrite rules.
Source: https://picmal.app/docs/output-and-naming
## Where files go
By default, converted and compressed files are saved in the same folder as the originals.
### Save to a subfolder
If you'd rather keep outputs out of the source folder, turn on **Output location → Save to subfolder** in **Settings → Output** and type a folder name (for example `picmal`). Every conversion or compression then writes to `//` instead of next to the source file.
- Files dropped from different folders each get their own subfolder, created beside the source.
- The subfolder is created automatically the first time it's needed.
- Leaving the name empty is the same as turning the toggle off, outputs go next to the source as before.
- [Finder services](/docs/integrations#finder-services-right-click-menu) (Compress/Convert from the right-click menu) follow this setting too, since they use your current app settings.
- Watched folders ignore this setting; configure their output location per folder under **Settings → Watched Folders**.

## File naming
Picmal names output files using patterns. You write a pattern (literal text plus tokens) and that becomes the output file's base name. The extension comes from the output format.
Configure patterns in **Settings → Output**. There are two independent patterns:
- **Convert pattern**: used when converting to a different format. Default: `{original}_converted`
- **Compress pattern**: used in Compress mode. Default: `{original}_compressed`
### Tokens
| Token | Replaced with | Example |
| ------------- | ------------------------------------------ | ------------------------ |
| `{original}` | Original filename (no extension) | `IMG_0042` |
| `{date}` | Capture date from EXIF | `2026-03-15` |
| `{datetime}` | Capture date and time from EXIF | `2026-03-15_14-22-08` |
| `{year}` | Capture year from EXIF | `2026` |
| `{month}` | Capture month from EXIF | `03` |
| `{day}` | Capture day from EXIF | `15` |
| `{camera}` | Camera make and model from EXIF | `FUJIFILM_X-T20` |
| `{iso}` | ISO value from EXIF | `400` |
| `{sequence}` | Position in the batch, starting at 1 | `1` |
Click any token in the settings panel to insert it into the focused pattern field. A live preview shows what the output filename will look like.
### Numbering a batch
`{sequence}` numbers files in the order they appear in the list. Two extra forms let you shape the count:
| Form | Gives you |
| ----------------- | -------------------- |
| `{sequence}` | `1`, `2`, `3` |
| `{sequence:3}` | `001`, `002`, `003` |
| `{sequence+10}` | `10`, `11`, `12` |
| `{sequence:3+10}` | `010`, `011`, `012` |
So `holiday-{sequence:3}` turns a folder of photos into `holiday-001.jpg`, `holiday-002.jpg`, and so on. Unlike the EXIF tokens, this one always has a value, a file with no metadata still gets its number.
A [watched folder](/docs/watched-folders#naming) counts differently: files arrive one at a time rather than as a batch, so the folder keeps a running count that carries on where it left off.
### Examples
```
{original}_web → IMG_0042_web.jpeg
{date}_{original} → 2026-03-15_IMG_0042.jpeg
{camera}_{iso}_{original} → FUJIFILM_X-T20_400_IMG_0042.jpeg
{year}/{month}/{original} → (slashes are sanitized to underscores)
```
### Missing metadata
If a pattern uses an EXIF token but the source file has no matching metadata (e.g. `{camera}` on a screenshot), Picmal falls back to the original filename for that file. This avoids broken names like `_400_IMG_0042`.
Unknown tokens (anything inside `{...}` that isn't recognized) are dropped silently.
## Overwriting originals
If your pattern produces the same name as the source file (for example, using just `{original}`), Picmal writes to a temporary file and replaces the original only after the operation succeeds. This is safe even on case-insensitive APFS volumes, where `.JPG` and `.jpg` collide.
In Compress mode, if the result isn't smaller than the original, the original is left untouched.
The settings panel warns you when your pattern would overwrite originals.
### Avoiding collisions
If a file with the output name already exists (because you ran the same conversion twice, say), Picmal doesn't overwrite it. It adds a number instead, so the new file is saved as `photo_converted 2.jpg` alongside the one that was already there.
## Default format conversion
Picmal can pick the output format for you when you drop files, so drag-and-drop workflows don't need a click. Choose how in **Settings → Output → Default format conversion**. There are two modes.
### Per input format
Set a default output format for each input type, all HEIC files to JPEG, all PNGs to WebP, and so on. Click **Add format rule** to add a pair. Input types you haven't mapped keep using the format you last picked for them.

### Keep a format as it is
Any rule can be set to **KEEP** instead of an output format. Files of that type are added to the list but never converted, so you can map HEIC to WebP, leave your PNGs alone, and drop a whole mixed folder without filtering it first.
KEEP is also available per file: click a row's format in the Convert list and pick **Keep original** to skip just that file.
Compressing is unaffected, a KEEP rule only controls what a file converts to, so Compress mode still shrinks those files as usual.
### Convert everything to
Pick one format and every image you drop converts to it, whatever it started as. This is the quick way to send a folder of mixed JPGs, PNGs and HEICs out as WebP without writing a rule per format.
Files already in the target format are re-encoded at your compression quality rather than pushed out to a different, often larger, format. Audio and video are unaffected, an MP4 never becomes a WebP.
Switching back to **Per input format** leaves your rules as they were.
---
# PDF tools
> Combine PDFs into one, split a PDF by page range, turn images into multi-page PDFs, and reorder or delete pages inside a PDF, locally, with reorderable pages, page sizes, and optional password protection.
Source: https://picmal.app/docs/pdf-tools
Picmal's sidebar has a **PDF** section with four tools: **Combine PDFs** merges documents into one, **Split PDF** breaks one document into several, **Images to PDF** turns a set of images into a multi-page PDF, and **Organize Pages** reorders and deletes pages inside a single PDF. All run entirely on your Mac, like everything else in Picmal.
## Combine PDFs
1. Select **Combine PDFs** in the sidebar
2. Drop two or more PDFs into the window
3. Drag rows to set the page order, the list order is the document order
4. Click **Combine**

The merged file is saved next to the first PDF as ` (combined).pdf`. If that name is taken, Picmal counts up instead of overwriting, ` (combined) 2.pdf`, and so on.
- Drag rows to reorder; the number on each row is its position in the merged document.
- Select rows and press Delete to remove them, or right-click for **Remove** / **Show in Finder**.
- Locked PDFs show an orange lock badge and block the merge. Unlock them in Preview first, then re-add.
- If your Convert or Compress list has only PDFs when you switch to Combine PDFs, they carry over automatically.
## Split PDF
1. Select **Split PDF** in the sidebar
2. Drop a PDF into the window
3. Type the page ranges you want in the options popover
4. Click **Split**

Each comma-separated range becomes its own PDF, saved next to the original as `-1.pdf`, `-2.pdf`, and so on. If a name is taken, Picmal counts up instead of overwriting.
### Page ranges
Ranges are written 1-based, separated by commas. So `1-3, 5, 8-` makes three files: pages 1–3, page 5, and page 8 to the end.
| Token | Meaning |
| ------- | ------------------------ |
| `5` | Just page 5 |
| `1-3` | Pages 1 through 3 |
| `8-` | Page 8 to the last page |
| `-3` | The first page through 3 |
Leave the field blank to **split every page into its own PDF**, handy for bursting a scanned batch back into separate documents.
- Drop several PDFs at once and each is split by the same ranges.
- Locked PDFs show an orange lock badge and block the split. Unlock them in Preview first, then re-add.
## Images to PDF
1. Select **Images to PDF** in the sidebar
2. Drop your images in, each image becomes one page
3. Drag rows to set the page order
4. Pick a page size, and adjust quality or add a password in the options popover
5. Click **Create PDF**

The PDF is saved next to the first image as `.pdf`, uniquified the same way.
Accepted inputs are the formats macOS decodes natively: JPEG, PNG, HEIC/HEIF, TIFF, GIF, BMP, WebP, AVIF, JPEG 2000, and JPEG XL. Sideways photos from iPhones render upright. EXIF orientation is applied automatically.
### Page sizes
| Option | Behavior |
| ------------ | --------------------------------------------------------------------- |
| Fit to Image | Each page exactly wraps its image, no borders, no scaling. Default. |
| A4 | Standard A4, auto-rotated to match each image's orientation. |
| US Letter | Standard Letter, auto-rotated the same way. |
| Custom… | Your own size in millimeters (10–2000 mm per side). |
The row thumbnails preview the layout: change the page size and they reshape instantly to show how each image sits on its page.
### Quality
Images are embedded as JPEG at the quality you choose (40–100%, default 85%). Lower quality makes a smaller file. The setting is remembered between sessions.
### Password protection
Type a password in the options popover and the PDF requires it to open. The password is kept for the current session only. Picmal never stores it on disk.
## Organize Pages
1. Select **Organize Pages** in the sidebar
2. Drop a PDF into the window
3. Drag the page thumbnails into the order you want, and delete any you don't need
4. Click **Save**

Each page shows up as a thumbnail in a list. Drag to reorder, select pages and press Delete (or right-click) to remove them, and click any thumbnail to preview it full-size. The saved PDF keeps only the pages you left, in the order you set.
Unlike the other three tools, Organize Pages is available in the app only for now. There's no Finder, Shortcuts, or command-line equivalent yet.
## Cropping a PDF
Trimming margins off a document isn't one of these four tools either. Use [Crop](/docs/crop). Type the millimeters to take off each edge and Picmal writes a cropped copy next to the original. The text stays selectable and the links keep working; only the page size changes.
## Making a PDF smaller
Shrinking a PDF isn't one of these four tools. Drop the file into **Compress** instead. Picmal re-encodes only the images inside the document, so text stays selectable and vector graphics stay sharp. Scans get their images downsampled as well, which is what makes a 25 MB scan come out around 2 MB; that route rebuilds the document, so if yours has links or bookmarks Picmal warns you on the row. See [How PDF compression works](/docs/image-compression#how-pdf-compression-works).
## Use them from Finder, Shortcuts, and the terminal
These tools are available beyond the app window:
- In Finder, right-click a PDF selection and choose **Picmal — Combine PDFs**, or an image selection and choose **Picmal — Images to PDF**. Both run with your saved settings, in selection order, even with Picmal closed. See [Integrations](/docs/integrations#finder-services-right-click-menu).
- In Shortcuts, the **Combine PDFs**, **Split PDF**, and **Images to PDF** actions take files in and return the finished PDF. See [Integrations](/docs/integrations#shortcuts-app).
- From the terminal, use `picmal-cli combine-pdfs`, `picmal-cli split-pdf`, and `picmal-cli images-to-pdf`. See [Command line](/docs/cli#split-pdf).
Like Convert and Compress, all three tools require the [free trial or a license](/docs/license).
---
# Remove Background
> Cut the subject out of a photo onto a transparent PNG, entirely on your Mac, in the app, in Shortcuts, or from the command line. Nothing is ever uploaded.
Source: https://picmal.app/docs/remove-background
Picmal's sidebar has a **Remove Background** tool that finds the subject in an image and drops everything else to transparent, giving you a clean PNG with an alpha channel. It uses Apple's on-device Vision framework, so the whole thing happens on your Mac. Nothing is uploaded anywhere.
## Remove a background
1. Select **Remove Background** in the sidebar
2. Drop one or more images into the window
3. Click **Remove Background**
VIDEO
Each result is written next to its source as `_removed.png`, a transparent PNG. If Picmal can't find a subject in an image, it skips that one and tells you in the status bar, then finishes the rest of the batch. Use **Show in Finder** to jump to the results.

## From Shortcuts
Picmal ships a **Remove Background** action for the Shortcuts app. Pass it one or more images and it returns the cut-out PNGs, so you can wire it into an automation or a Quick Action in Finder. See [Integrations](/docs/integrations).
## From the command line
The [command line tool](/docs/cli) has a `remove-background` command:
```bash
picmal-cli remove-background photo.jpg
picmal-cli remove-background *.png -o cutouts/
```
By default each output lands next to its source as `_removed.png`. Pass `-o` to choose an output directory, `-w` to overwrite existing files, and `--json` for machine-readable output when you're piping into other tools.
## Getting a clean result
- **It works best with a clear subject.** A person, product, or animal against a distinct background cuts out cleanly; a busy scene with no obvious subject may be skipped.
- **Everything runs on your Mac.** No image ever leaves your machine, so it works offline and on private files.
---
# Resize and color space
> Resize images and adjust color space during conversion or compression in Picmal, six resize modes plus sRGB, Display P3, and Rec. 2020 control.
Source: https://picmal.app/docs/resize-and-color-space
## Image resize
Turn on resizing to change image dimensions. The same settings apply in both **Convert** and **Compress**, so you can drop pixel dimensions while shaving file size in either mode. Six modes to choose from:
| Mode | What It Does | Default |
| ---------------- | -------------------------------------------------------------------------------------------- | -------------- |
| Percentage | Scale by a percentage of the original size | 50% |
| Fixed Width | Set a specific width; height adjusts to maintain aspect ratio | 1920 px |
| Fixed Height | Set a specific height; width adjusts to maintain aspect ratio | 1080 px |
| Max Dimensions | Constrain to maximum width and height, image is scaled down only if it exceeds either limit | 1920 x 1080 px |
| Exact Dimensions | Resize to an exact width and height | 1920 x 1080 px |
| Max File Size | Scale the image down just enough to fit a target file size | 500 KB |
### Max File Size
Type a target size (in KB or MB) and Picmal scales each image down until it fits. It searches for the largest size that still lands under your budget, so you keep as much detail as possible. Images already under the target are left at full size. This mode is for images only. It isn't available for audio or video.
### Trim borders
Turn on **Trim borders** and Picmal removes a solid-color border from each image before it's resized and encoded, the white space around a screenshot, the black bars around an exported logo. It reads the corner color and trims what matches, with a 5% tolerance for backgrounds that aren't perfectly uniform.
It applies in both Convert and Compress, and to images only. For another tolerance, for a specific margin, or for PDFs, use the [Crop](/docs/crop) tool.
### Aspect ratio
By default Picmal keeps the original aspect ratio. In **Exact Dimensions** mode you can override that and stretch the image to fit, if you really want squashed faces.
## DPI / Resolution
Set the DPI (dots per inch) metadata on output images. This changes how big the image lands when printed or dropped into InDesign or Figma. The pixel dimensions stay exactly the same.
Turn on **Set DPI** in the output settings and pick a preset, or type your own number.
| Preset | DPI | Best For |
| ------------ | ------ | ------------------------------- |
| Screen | 72 | Web, email, social media |
| Windows | 96 | Windows display standard |
| Retina | 144 | Retina / HiDPI displays (2× 72) |
| Draft Print | 150 | Low-quality print proofs |
| Print | 300 | Standard print quality |
| High-Quality | 600 | Professional / fine art print |
| Custom | 1–9999 | Any value you need |
DPI applies to both converted and compressed images. Audio and video files ignore it (as they should).
## Color space
Convert images between color spaces during processing. Useful when the same photo has to go to a browser, a print shop, and your phone without looking like three different images.
| Color Space | Best For |
| ---------------- | --------------------------------------------- |
| sRGB | Web, email, general screen use (standard) |
| Display P3 | Apple devices, wide-gamut displays |
| Adobe RGB (1998) | Professional print workflows |
| ProPhoto RGB | Professional photography, maximum color range |
| Rec. 709 | HD video and broadcast |
| Rec. 2020 | 4K / HDR video |
| Grayscale | Black-and-white output |
| CMYK | Print-ready files, via bundled color profiles |
If you're not sure, leave it off. sRGB is the safe bet for almost everything. **Grayscale** drops color entirely for black-and-white output, and **CMYK** converts through Picmal's bundled color profiles for print shops that ask for it.
### CMYK and wide-gamut sources
Picmal reads the color profile inside the file you give it. A CMYK JPEG out of InDesign, or a photo tagged Adobe RGB or Display P3, is translated to sRGB before it becomes a WebP, PNG, or any other screen format, so the colors come out as you saw them rather than oversaturated. Keep metadata on and the profile travels with the file; strip it and the pixels are converted first, so nothing is left to misread.
Print files stay print files: converting a CMYK image to JPEG, TIFF, or PDF with metadata kept leaves it in CMYK.
## Orientation
| Mode | What It Does |
| -------- | --------------------------------------------------------------------------------------------- |
| Auto-fix | Physically rotates pixels and removes the orientation tag. The image looks correct everywhere |
| Keep tag | Preserves the original orientation tag in metadata. Some apps may not read it correctly |
Pick **Auto-fix** if your photos are heading to the web or into apps that habitually forget EXIF orientation exists.
---
# Supported formats
> Full list of image, audio, and video formats Picmal can read and write on macOS, including HEIC, JPEG, PNG, WebP, AVIF, MP3, MP4 and more.
Source: https://picmal.app/docs/supported-formats
## Images
### Common formats
| Format | Input | Output | Notes |
| ------ | ----- | ------ | ---------------------------------- |
| JPEG | Yes | Yes | Most widely supported photo format |
| PNG | Yes | Yes | Lossless with transparency |
| GIF | Yes | Yes | Animated and static |
| WebP | Yes | Yes | Modern web format |
| HEIC | Yes | Yes | Apple's default photo format |
| AVIF | Yes | Yes | Next-gen web format |
| BMP | Yes | Yes | Uncompressed bitmap |
| TIFF | Yes | Yes | Print and archival |
| PDF | Yes | Yes | Document/image hybrid |
| SVG | Yes | Yes | Vector graphics |
| ICO | Yes | Yes | Favicons and icons |
### Professional formats
| Format | Input | Output | Notes |
| ------ | ----- | ------ | ------------- |
| PSD | Yes | Yes | Photoshop |
| EXR | Yes | Yes | HDR/VFX |
| JP2 | Yes | Yes | JPEG 2000 |
| JXL | Yes | Yes | JPEG XL |
| DDS | Yes | Yes | Game textures |
### Specialist formats
| Format | Input | Output | Notes |
| --------------------- | ----- | ------ | ----------------- |
| TGA | Yes | Yes | Legacy game/video |
| SGI | Yes | Yes | Silicon Graphics |
| QOI | Yes | Yes | Quite OK Image |
| PBM / PGM / PPM / PNM | Yes | Yes | Netpbm family |
| PCX | Yes | Yes | Legacy PC format |
| XBM / XPM | Yes | Yes | X Window bitmaps |
| PICT | Yes | Yes | Legacy Mac format |
| QTIF | Yes | Yes | QuickTime Image |
### Input-Only formats
These formats can be read and converted to other formats, but Picmal cannot write them.
| Format | Notes |
| ------ | ----------------------- |
| AI | Adobe Illustrator |
| ICNS | Apple icon file |
| ARW | Sony RAW |
| CR2 | Canon RAW |
| DNG | Adobe Digital Negative |
| NEF | Nikon RAW |
| RAF | Fujifilm RAW |
RAW and vector formats are converted using bundled tools, so you don't need to install anything extra. An ICNS holds several sizes at once, so it comes out as one file per size. See [Apple icon files](/docs/converting-files#apple-icon-files). To go the other way and *create* an `.icns`, use [App Icons](/docs/app-icons).
## Audio
| Format | Input | Output |
| ----------------- | ----- | ------ |
| MP3 | Yes | Yes |
| AAC / M4A | Yes | Yes |
| M4B (audiobook) | Yes | Yes |
| ALAC | Yes | Yes |
| WAV | Yes | Yes |
| FLAC | Yes | Yes |
| OGG / OGA | Yes | Yes |
| Opus | Yes | Yes |
| AIFF / AIF / AIFC | Yes | Yes |
| M4R | Yes | Yes |
| AC3 | Yes | Yes |
| EAC3 | Yes | Yes |
| MKA | Yes | Yes |
| WMA | Yes | Yes |
| WV | Yes | Yes |
| AU | Yes | Yes |
| CAF | Yes | Yes |
| DTS | Yes | Yes |
| TTA | Yes | Yes |
| MP2 | Yes | Yes |
| VOC | Yes | Yes |
| W64 | Yes | Yes |
| SLN | Yes | Yes |
Plus additional niche formats: IRCAM, SND, HCOM, PAF, WVE, NIST, AVR, PVF.
Read-only (convert from, not to): APE (Monkey's Audio), MPC (Musepack), TAK, DSF (DSD), SHN (Shorten), AMR, GSM and SPX (Speex). Drop these in and convert them to any output format above.
## Video
| Format | Input | Output |
| ---------- | ----- | ------ |
| MP4 | Yes | Yes |
| MOV | Yes | Yes |
| AVI | Yes | Yes |
| MKV | Yes | Yes |
| WebM | Yes | Yes |
| M4V | Yes | Yes |
| MPG / MPEG | Yes | Yes |
| HEVC | Yes | Yes |
| FLV | Yes | Yes |
| WMV | Yes | Yes |
| 3GP | Yes | Yes |
| 3G2 | Yes | Yes |
| M2TS / MTS | Yes | Yes |
| VOB | Yes | Yes |
| ASF | Yes | Yes |
| OGV | Yes | Yes |
| TS | Yes | Yes |
| MJPEG | Yes | Yes |
| M2V | Yes | Yes |
| F4V | Yes | Yes |
| MXF | Yes | Yes |
| WTV | Yes | Yes |
| MOD | Yes | No |
MOD is a camcorder format (JVC, Canon, Panasonic). Picmal reads MOD files and converts them to MP4, MOV, AVI, MKV, MPG, or GIF.
Read-only (convert from, not to): RM and RMVB (RealMedia), BIK (Bink), FLI and FLC (FLIC animation), NSV (Nullsoft Streaming Video), DAV (Dahua CCTV) and MOD. Drop these in and convert them to any output format above.
---
# Vectorize
> Trace raster images into real SVG vectors on your Mac (actual paths, not a bitmap wrapped in an SVG) with a Logo, Photo, or B&W style per image, in a single batch.
Source: https://picmal.app/docs/vectorize
Picmal's sidebar has a **Vectorize** tool that traces a raster image (a PNG, JPG, or similar) into a true SVG with real vector paths. It's not a bitmap wrapped in an SVG tag: the output is actual traced geometry you can scale to any size. Like everything else in Picmal, it runs entirely on your Mac.
It shines on logos, icons, line art, and other flat, high-contrast images. Detailed photographs can be traced too, but expect large, complex paths.
## Vectorize an image
1. Select **Vectorize** in the sidebar
2. Drop one or more images into the window
3. Pick a **style** for each image (see below), the dropdown sits on each row
4. Click **Vectorize All**
Each SVG is written next to its source image, with the same name. If a `.svg` already exists there, Picmal adds a number so nothing is overwritten. Select rows and use **Show in Finder** to jump to the results.

## Styles
Pick the style per image from the dropdown on its row. To set them all at once, use the style picker in the bottom bar.
| Style | Best for |
| ----- | -------------------------------------------------------------------- |
| Logo | Logos, icons, and flat color art. Traces smooth, filled color shapes. |
| Photo | Photographs and images with gradients or fine detail. |
| B&W | Line art, sketches, and anything you want as a clean black-and-white trace. |
## Supported inputs
Vectorize accepts PNG, JPG, GIF, BMP, TIFF, and WebP. The output is always SVG.
## Getting a clean result
- **Start with a high-contrast image.** Flat art with clear edges traces cleanly; noisy or low-contrast images produce messy paths.
- **Logo style suits most icons and marks.** Reach for Photo only when the source really is a photograph. It produces far more (and larger) paths.
- **Bigger sources trace more faithfully.** A small, blurry input has soft edges the tracer has to guess at.
---
# Video tools
> Combine several videos into one on your Mac, or turn a batch of photos into an MP4 slideshow, reorder the clips, choose the output format, and let Picmal copy them losslessly or scale and re-encode mismatched clips to match.
Source: https://picmal.app/docs/video-tools
Picmal's **Media** section has two video tools: **Combine Videos** joins clips end-to-end, and **Slideshow** turns a batch of still images into a video. Like everything else in Picmal, both run entirely on your Mac.
## Combine Videos
1. Select **Combine Videos** in the sidebar
2. Drop two or more videos into the window
3. Drag rows to set the order, the list order is the play order
4. Click **Combine**

The combined file is saved next to the first one as ` (combined).`. If that name is taken, Picmal counts up instead of overwriting, ` (combined) 2.mp4`, and so on.
- Drag rows to reorder; the number on each row is its position in the finished video.
- Select rows and press Delete to remove them, or right-click for **Remove** / **Show in Finder**.
- A file Picmal can't read as video shows an orange warning and blocks the combine. Remove it and try again.
### Lossless when it can be
When every clip in the list already shares the same codec, resolution, and frame rate, Picmal joins the streams without re-encoding. It's fast and there's no quality loss. Mix formats or sizes (say a 720p MP4 and a 1080p WebM) and it scales each clip onto the first one's frame and re-encodes to match. Either way you get one continuous video.
### Output format
Open **Video Options** to choose the output format. Leave it on **Same as first file** to keep the first clip's format (the setting that keeps a matched combine lossless) or pick MP4, MOV, MKV, or WebM to convert everything as it combines. WebM is re-encoded to VP9; the rest use H.264. Your choice is remembered between sessions.
### Output name
In the same popover, type a name for the combined file, or leave it blank for the automatic ` (combined)` name. The extension follows the output format you picked. The file is always saved next to the first input.
## Slideshow
1. Select **Slideshow** in the sidebar
2. Drop your images in, mixed formats and sizes are fine
3. Drag rows to set the order, the list order is the play order
4. Pick a resolution in the bottom bar, and set the seconds per image in the options popover
5. Click **Create Slideshow**
The video is saved next to the first image as ` (slideshow).mp4`. If that name is taken, Picmal counts up instead of overwriting. The status line shows the image count and the finished runtime as you build the list, so you know how long the video will be before you make it.
- Drag rows to reorder; the number on each row is its position in the video.
- Select rows and press Delete to remove them, or right-click for **Remove** / **Show in Finder**.
- An image Picmal can't read shows a warning and blocks the create. Remove it and try again.
### Resolution
The picker in the bottom bar sets the frame size of the video.
| Option | Frame size |
| ------------------- | --------------------------------------------------------------- |
| Match Largest Image | Sized to your biggest photo, capped at 4096 px on the long edge |
| 4K | 2160p |
| 1080p | Full HD. Default. |
| 720p | HD |
The preset frames are 16:9, rotated to match the orientation of most of your images. Every image is then scaled to fit the frame and centered, with black filling the rest. Nothing is ever cropped, whatever mix of sizes you drop in.
### Seconds per image and output name
Open the options popover to set how long each image is held (0.5 to 30 seconds, default 3) and to name the file. Every image gets the same time on screen. Leave the name blank for the automatic ` (slideshow)` name; the video is always saved next to the first image.
The output is H.264 MP4 at 30 fps, encoded on the Mac's hardware media engine. HEICs, sideways iPhone photos, CMYK images and transparent PNGs are all prepared for you, orientation is applied and transparency is flattened before encoding.
## Use them from Shortcuts and the terminal
These tools are available beyond the app window:
- In Shortcuts, the **Combine Videos** action takes videos in and returns the finished file. See [Integrations](/docs/integrations#shortcuts-app).
- From the terminal, use `picmal-cli combine-videos` to join clips and `picmal-cli slideshow` to build a slideshow. See [Command line](/docs/cli#combine-videos).
Slideshow is app and command line only for now. There's no Finder or Shortcuts equivalent yet.
The **Media** section also has [Download Video](/docs/download-video), which fetches videos from a link and makes sure the result opens in QuickTime.
Like Convert and Compress, both tools require the [free trial or a license](/docs/license).
---
# Watched folders
> Set up folders that auto-convert or compress files the moment they appear. Picmal processes them in the background, hands-off.
Source: https://picmal.app/docs/watched-folders
Watched folders process files as soon as they show up. Drop something in, and Picmal converts or compresses it. You don't have to open the app. Watched folders need a license; the 7-day trial does not cover them.
## Setup
1. Open **Settings** → **Watched Folders**
2. Click **Add Folder** and select a folder
3. Configure the folder's processing settings
4. New files added to that folder are processed automatically
## Per-folder configuration
Each watched folder has its own settings:
### Actions
Pick what the folder does with the files that arrive:
| Action | What happens |
| ------------- | ------------------------------------------------------------------------- |
| Compress | Each file is compressed in its original format. |
| Convert | Each file is converted to a format you pick. |
| Images to PDF | The images that arrive together become one multi-page PDF. |
| Combine PDFs | The PDFs that arrive together are merged into one. |
Compress and Convert are per-file: one file in, one file out. **Images to PDF** and **Combine PDFs** are batch actions. They wait for the folder to go quiet, then collapse everything that landed into a single document.
#### Images to PDF
Drop any number of images into the folder and, ten seconds after the last one lands, Picmal writes a single PDF with one page per image, in Finder name order. Pick **Fit to Image**, **A4**, or **US Letter** pages and the JPEG quality for the embedded images in the folder's settings, name the PDF with the usual [naming tokens](/docs/output-and-naming#tokens), and turn on **Delete originals** if you want the images cleared once the PDF exists.
Great for a scanner that drops one file per page, or a phone-photo folder you want filed as documents.
#### Combine PDFs
Same idea, for PDFs: everything that arrives inside the ten-second window is merged into one document, in name order.
From the terminal, `picmal-cli watch add --action images-to-pdf` and `--action combine-pdf` set these up. See [Command line](/docs/cli#watch-add).
### Output destination
| Option | Description |
| ---------------- | ---------------------------------------- |
| Same folder | Save processed files alongside originals |
| Output subfolder | Save into a "Processed" subfolder |
| Custom location | Save to a folder you choose |
### File type filter
Choose which types of files to process:
- Images
- Audio
- Video
### Presets
Pick image, audio, and video compression presets independently for each watched folder.
### Resize settings
Each watched folder can have its own resize configuration. Choose from several resize modes:
- **Percentage**. Scale by a percentage of the original size
- **Fixed dimensions**. Resize to exact width and height
- **Max dimensions**. Fit within a maximum width and height, preserving aspect ratio
- **Width only**. Set a fixed width, height adjusts automatically
- **Height only**. Set a fixed height, width adjusts automatically
- **Max file size**. Scale each image down to fit a target file size
### Naming
Set a prefix and/or suffix for output files, or write a full naming pattern using the same tokens as **Settings → Output**, `{original}`, `{date}`, `{camera}`, and the rest. See [output and naming](/docs/output-and-naming#tokens) for the full list.
`{sequence}` works a little differently here. A watched folder sees files one at a time rather than as a batch, so instead of restarting at 1 with every file it keeps a running count for that folder. The folder's settings show how many numbers it has handed out and give you a **Reset** button to start again at 1.
### Additional options
| Option | Description |
| ---------------------- | --------------------------------------------------- |
| Process subfolders | Also watch files in subdirectories |
| Delete originals | Remove source files after processing |
| Process existing files | Queue every supported file already in the folder when you add it. The Edit sheet also has a **Process Existing Files Now** button to run it whenever you like |
| Min file size | Skip files smaller than this (KB) |
| Max file size | Skip files larger than this (MB) |
| Remove metadata | Strip metadata from processed files |
| Compress after convert | When in Convert mode, compress the output file afterward |
## Notifications
When a watched folder finishes processing, Picmal posts a native macOS notification with the file count and total savings. Manage delivery (banners, sounds, summaries) under **System Settings → Notifications → Picmal**.
## Requirements
- **Keep in menu bar** must be enabled in Settings for watched folders to work in the background
- Pair it with **Start at login** if you want processing to resume after a reboot without you opening the app
## Tips
- Use watched folders with your Downloads folder to auto-compress screenshots and photos
- Set up a "web export" folder that converts everything to WebP
- Combine with cloud sync folders (iCloud, Dropbox) for automatic optimization
- Point your scanner at an **Images to PDF** folder and get one filed document per scanning session
---
# Watermarks
> Add a logo or PNG watermark to videos during conversion in Picmal, perfect for branding client deliverables or marking previews as drafts.
Source: https://picmal.app/docs/watermarks
Stamp a logo or PNG overlay onto videos during conversion. Handy for branding client deliverables, marking previews "draft," or signing a batch of clips before they leave your Mac.

## How to use
1. Open **Settings → Watermark**
2. Pick a PNG (transparency is preserved)
3. Set position, margins and opacity
4. Run your conversion. The watermark is baked into every output
The same preset applies to the whole batch, so you're not fiddling with it per file.
## Position
Pick one of nine anchor points on a 3×3 grid:
| Top-left | Top-center | Top-right |
| ------------ | ------------- | ------------ |
| Middle-left | Center | Middle-right |
| Bottom-left | Bottom-center | Bottom-right |
Margins push the watermark away from whichever edge you picked. Opacity runs from 0 (invisible) to 100 (fully opaque).
## Scale to image
Turn on **Scale to image** in the watermark editor to size the watermark as a percentage of each image's height. One preset stays visually consistent across photos with very different dimensions, so you won't get tiny logos on 6000 px shots and oversized ones on thumbnails. Drag the height slider to set the percentage.

## Presets
Save as many watermark configurations as you need. A small logo tucked into the bottom-right for client work, a fat "PREVIEW" slab for social, whatever your workflow asks for. Switch between presets from the Watermark settings without setting everything up again.
## Notes
- Use a PNG with transparency, otherwise you'll get a white rectangle sitting behind your logo.
- Tiny watermarks scaled onto large videos can go aliased and crunchy; export your logo close to the size it'll appear at.
- Watermarks are burned in during encoding. Once the file is out, they're not coming off.