Repository navigation
v0.5.0
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 --recursiveAccepted 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 namedcontact.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
--dpiis 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-sizeto 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