Skip to content

v0.5.0

Choose a tag to compare

@github-actions github-actions released this 26 Oct 18:33
· 10 commits to master since this release

Whole photo archives in one run: recursive scanning, format filtering, A3 and Letter paper, and PDF output that scales to thousands of pages. Plus a Linux ARM64 build.

New

Scan subfolders – --recursive [DEPTH]

--recursive scans all subfolders, --recursive 2 goes at most two levels down. Hidden folders and contact-sheet output folders from earlier runs are skipped. Labels and --verbose show the path relative to the scanned folder, e.g. 2026-10-17/IMG_0001.CR2.

Only some formats – --only FORMAT

For cameras that save RAW + JPEG, so every photo appears once:

contact-sheet --only raw ~/Pictures/2026-10-17   # all RAW formats and DNG
contact-sheet --only jpg ~/Pictures/2026-10-17   # .jpg and .jpeg
contact-sheet --only cr3,dng ~/Pictures/archive --recursive

Accepted values: raw, jpg, tif or a single RAW extension (cr2, cr3, crw, nef, nrw, raf, 3fr, fff, dng); case does not matter. The program reports how many files the filter left out.

Paper size – --paper a4|a3|letter

A4 stays the default. Works for JPEG and PDF output, in portrait and landscape.

PDF output for large archives

  • Memory use no longer grows with the page count: pages are written to disk as soon as they are rendered instead of being kept in memory (a 400-page PDF now needs the same memory as JPEG output).
  • Split into several files rather than one that viewers and print shops cannot open: contact-01.pdf, contact-02.pdf, … once a file reaches --max-pdf-size (500 MB by default) or --max-pages. A single file is still named contact.pdf.
  • After the first page the program estimates the total size and tells you when the output will be split; it warns if you allow files over 1 GB.
  • Safe when interrupted: PDFs are written under temporary names and replace the previous output only once complete, so a cancelled run never leaves a broken PDF behind.

Linux ARM64

Prebuilt static binary for 64-bit ARM Linux – e.g. Raspberry Pi 4/5 with a 64-bit OS, AWS Graviton or Ampere servers – built and tested on native ARM hardware.

Changed

Important

  • --dpi is limited to 600 (previously 1200). 600 DPI is more than enough for printed thumbnails, and an A3 page at 1200 DPI needs over 800 MB of memory for a single page.
  • Large PDF output is now split by default at 500 MB. Use --max-pdf-size to raise the limit if you need a single larger file.

Downloads

Platform Archive
macOS (Apple silicon) contact-sheet-v0.5.0-aarch64-apple-darwin.tar.gz
Linux (x86_64, static) contact-sheet-v0.5.0-x86_64-unknown-linux-musl.tar.gz
Linux (ARM64, static) contact-sheet-v0.5.0-aarch64-unknown-linux-musl.tar.gz
Windows (x86_64) contact-sheet-v0.5.0-x86_64-pc-windows-msvc.zip

Each archive has a .sha256 checksum next to it. On macOS, run xattr -d com.apple.quarantine contact-sheet before the first start.

Full Changelog: v0.4.0...v0.5.0