firemark
Un outil rapide de filigrane monobinaire pour images et PDF. Construit en Rust.
Pourquoi filigraner vos documents ?
Chaque année, des millions de personnes sont victimes de fraudes à l'identité qui commencent par un simple échange de documents. Un scénario courant : vous cherchez un appartement à louer. Le propriétaire — ou quelqu’un se faisant passer pour lui — demande une copie de votre pièce d’identité, une fiche de paie, un avis d’imposition. Vous les envoyez sans marque. Le "propriétaire" disparaît, et vos documents sont désormais utilisés pour ouvrir des comptes bancaires, contracter des prêts, ou falsifier des identités en votre nom.
Filigraner chaque document que vous envoyez est la défense la plus efficace. Un filigrane visible indiquant « Envoyé à l’agence XYZ — mars 2026 — uniquement pour la demande de location » rend le document inutile à toute autre fin. S’il fuit, vous savez exactement d’où il provient.
firemark rend cela simple : une commande, n’importe quelle image ou PDF, 17 styles visuels, des motifs cryptographiques de filigrane résistants à la modification, et un traitement par lots pour des dossiers entiers.
Avant et après — une seule commande, le document est désormais traçable et infalsifiable.
Installation
Depuis crates.io :
cargo install firemark
Depuis la source :git clone https://github.com/Vitruves/firemark.git
cd firemark
cargo install --path .Produit un seul binaire optimisé (~5 Mo).
Démarrage rapide
# Watermark a single image
firemark photo_id.png -m "Flat rental — SCI Dupont — March 2026"Watermark a PDF
firemark tax_notice.pdf -m "CONFIDENTIAL" -s "Do not distribute"Watermark an entire folder recursively
firemark ./documents/ -R -m "Sent to Agency X" -t stampPreview without writing files
firemark id_card.jpg -m "Draft" -n
La sortie est enregistrée à côté de l'entrée sous le nom {name}-watermarked.{ext} par défaut.
Utilisez -o pour définir un chemin de sortie explicite, ou -S pour un suffixe personnalisé. Types de filigrane
| Drapeau | Style | Description |
|---|---|---|
| diagonal | Grille diagonale | Texte diagonal répétitif sur toute la page (par défaut) |
| stamp | Tampon en caoutchouc | Grand tampon centré avec double bordure |
| stencil | Pochoir | Lettres militaires pochoir pleine largeur |
| typewriter | Machine à écrire | Texte à espacement fixe de machine à écrire |
| handwritten | Signature | Signature style manuscrit avec soulignement |
| redacted | Raturé | Barres noires pleine largeur de caviardage |
| badge | Écusson | Emblème de bouclier de sécurité |
| ribbon | Ruban | Bannière ruban diagonale d'angle |
| seal | Sceau | Sceau circulaire style notaire |
| frame | Cadre | Bordure décorative pleine page |
| tile | Carreau | Grille de texte uniforme dense |
| mosaic | Mosaïque | Texte dispersé aléatoirement |
| weave | Tissage | Tissage diagonal entrelacé |
| ghost | Fantôme | Texte embossé ultra-subtil |
| watercolor | Aquarelle | Effet de lavis flou doux |
| noise | Bruit | Texte distressed avec bruit pixelisé |
| halftone | Trame | Texte en grille de points trame |
firemark doc.pdf -t stamp -m "CONFIDENTIAL" --border --color redFiligrane de sécurité
firemark superpose des motifs cryptographiques de filigrane inspirés des caractéristiques de sécurité des billets de banque. Ces motifs géométriques fins sont extrêmement difficiles à supprimer avec des éditeurs d’images.
| Style | Description |
|---|---|
| guilloche | Bandes enveloppes sinusoïdales (par défaut) |
| rosette | Spirographe + courbes en forme de rose d’angle |
| crosshatch | Treillis fin en losanges diagonaux |
| border | Bordure de sécurité ondulée imbriquée |
| lissajous | Figures paramétriques de Lissajous |
| moire | Interférence de cercles concentriques |
| spiral | Vortex en spirale d’Archimède |
| mesh | Grille hexagonale en nid d’abeille |
| plume | Courbes fluides semblables à des plumes réparties sur la surface |
| constellation | Nœuds d’étoiles reliés par une fine toile géométrique |
| ripple | Fronts d’onde elliptiques superposés provenant d’origines aléatoires |
| full | Tous les motifs combinés |
| none | Désactiver le filigrane |
firemark id.png -m "Rental application" --filigrane moire
firemark id.png -m "Rental application" --filigrane none # disableRenforcement contre la suppression par IA
Chaque rendu est non déterministe par défaut. firemark applique une perturbation universelle post-rendu (tremblement alpha, bruit de couleur sous-pixel, micro-points sur les bords, pixels fantômes clairsemés) et une randomisation par moteur de rendu afin qu'aucune sortie ne soit pixel-identique — même avec les mêmes réglages. Cela rend impossible pour les modèles de vision IA d'apprendre un schéma prévisible à soustraire.
De plus, des bandes d'injection d'invite adversariale sont intégrées par défaut pour
déstabiliser les outils de suppression de filigrane IA. Désactivez avec --no-anti-ai si vous ne souhaitez pas
le texte d'invite visible :
firemark doc.png -m "CONFIDENTIAL" --no-anti-aiOptions communes
-m, --main-text Primary watermark text
-s, --secondary-text Secondary text line
-t, --type Watermark style (see table above)
-o, --output Output file path
-S, --suffix Custom output suffix (default: "watermarked")
-c, --color Color — name or #RRGGBB (default: blue)
-O, --opacity Opacity 0.0–1.0 (default: 0.5)
-r, --rotation Angle in degrees (default: -45)
-p, --position center, top-left, top-right, bottom-left, bottom-right, tile
-f, --font Font name or path to .ttf/.otf
-I, --image Overlay an image as watermark
--qr-data Embed a QR code with custom data
--qr-code-position QR code placement (default: center)
--qr-code-size QR code size in pixels (default: auto)
--border Draw a border around the watermark
--shadow Add a drop shadow
--filigrane Security filigrane style (default: guilloche)
--no-anti-ai Disable adversarial prompt injection (on by default)Pour la liste complète des plus de 70 options, voir CLI.md.
Options PDF
--pages Pages to watermark (e.g. 1,3-5 or "all")
--skip-pages Pages to skip
--behind Place watermark behind content
--no-flatten Keep layers separate (flattened by default)
--dpi Render resolution (default: 150)Traitement par lots
# Process all images and PDFs in a folder
firemark ./inbox/ -m "INTERNAL" -t tileRecursive, 8 threads, custom suffix
firemark ./docs/ -R -j 8 -m "Draft" -S draftDry run — list what would be processed
firemark ./docs/ -R -m "Draft" -nLes fichiers déjà filigranés (correspondant au suffixe) sont automatiquement ignorés lors des relances.
Fichier de configuration
Enregistrez les options dans un fichier TOML pour éviter de répéter les options. Voir
examples/config/firemark.toml pour un
exemple complet avec deux préréglages : ultra-sécurisé (carrelage dense, filigrane complet, traçabilité QR,
suppression des métadonnées) et léger (texte diagonal simple, sans extras).
# Global defaults
main_text = "CONFIDENTIAL"
secondary_text = "{author} — {date}"
watermark_type = "diagonal"
color = "#1a3c6e"
opacity = 0.45
font_weight = "bold"
filigrane = "guilloche"
border = true[preset.ultra-secure]
main_text = "CONFIDENTIAL — {author}"
watermark_type = "tile"
color = "#CC0000"
opacity = 0.6
filigrane = "full"
anti_ai = true
qr_data = "firemark://{author}/{timestamp}/{uuid}"
strip_metadata = true
[preset.light]
main_text = "COPY"
watermark_type = "diagonal"
color = "#555555"
opacity = 0.3
filigrane = "none"
anti_ai = false
firemark doc.pdf --config firemark.toml
firemark doc.pdf --config firemark.toml --preset ultra-secure
firemark doc.pdf --config firemark.toml --preset light
firemark doc.pdf --save-preset mypreset # save current flags
firemark --list-presets # list available presetsSupport des formats
| Format | Entrée | Sortie | |---|---|---| | PNG | oui | oui | | JPEG | oui | oui | | PDF | oui | oui | | WebP | oui | oui | | TIFF | oui | oui |
La conversion entre formats est prise en charge (par ex. firemark photo.webp -o out.pdf).
Licence
MIT
--- Tranlated By Open Ai Tx | Last indexed: 2026-04-06 ---