add-photo-certificate-watermarks

Add text watermarks to photos, ID documents, certificates, and PDFs locally.

733|99|Updated Dec 19, 2025
One-click install
npx skills add https://github.com/chujianyun/skills --skill add-photo-certificate-watermarks
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: add-photo-certificate-watermarks
Source: https://github.com/chujianyun/skills/tree/main/skills/media/add-photo-certificate-watermarks
Command: npx skills add https://github.com/chujianyun/skills --skill add-photo-certificate-watermarks

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires Pillow, PyMuPDF, and includes scripts (resource) and references (resource) components.

What problem does it solve?

Sharing photos, ID cards, diplomas, or business licenses without a visible usage restriction makes them easy to misuse or copy. This Skill adds purpose-limiting or copyright text watermarks locally, with a preview-first workflow so sensitive regions like faces, QR codes, seals, and certificate numbers stay verifiable.

Core Features & Use Cases

  • Two watermark presets: a corner copyright mark for photos and a diagonal tiled usage-restriction watermark for ID cards, passports, diplomas, certificates, and business licenses.
  • Preview-then-batch workflow: render a preview of the first file, review readability and exclusion zones, then batch-process JPEG, PNG, WebP, and PDF files without ever overwriting originals.
  • Exclusion zones and metadata control: define normalized rectangles to avoid QR codes, portraits, seals, and signatures, with EXIF metadata removed by default.
  • Use Case: You need to send an ID card scan for an apartment rental application. Generate a preview with the text "仅用于租房审核,其他用途无效", confirm the portrait and ID number remain readable, then output the watermarked copy to a separate directory.

Quick Start

Use the add-photo-certificate-watermarks skill to add a "for rental application only" watermark to my ID card scan and show me a preview first.

Frequently Asked Questions about add-photo-certificate-watermarks

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add a watermark to an ID card or certificate scan?

Run the add_watermark.py script with the certificate preset, which applies a diagonal tiled watermark stating the permitted usage. Generate a preview first with --preview-only, verify that faces, ID numbers, and seals remain readable, then run the batch output.

How to watermark photos in bulk with Python?

Use the photo preset for a corner copyright mark and pass a directory with --recursive to process all JPEG, PNG, and WebP files. Outputs are written to a separate directory with a _watermarked suffix, and existing files are never overwritten.

Can I watermark PDF documents without converting them to images?

Yes, the script uses PyMuPDF to insert the watermark overlay directly into each PDF page, preserving the original PDF format. Encrypted or zero-page PDFs are reported as failures rather than silently converted.

How do I keep QR codes and seals visible under a watermark?

Pass one or more --exclude rectangles in normalized left,top,right,bottom coordinates between 0 and 1 to mask the watermark out of those regions. Exclusion coordinates are only reusable across files sharing the same layout, so preview each layout separately.

Why does the watermark show Chinese characters as boxes?

This happens when no CJK-capable font is found on the system. Provide an installed .ttf, .otf, or .ttc font supporting Chinese via the --font option, and the script will render the text correctly.

Does watermarking preserve EXIF metadata in images?

No, EXIF metadata is removed by default to avoid leaking GPS location, device, and capture time. You can opt in to keeping it with --keep-metadata after confirming it contains no sensitive information.