
Arrêtez d'envoyer des documents sans filigrane. Firemark filigrane les images et les PDF en une seule commande. Optimisé pour contrer la suppression des filigranes par l'IA. Écrit en Rust.
Un outil de tatouage rapide, binaire unique pour images et PDF. Construit en Rust.
Chaque année, des millions de personnes sont victimes d'usurpation d'identité qui commence par un simple échange de documents. Un scénario classique : vous cherchez un appartement à louer. Le propriétaire — ou quelqu'un se faisant passer pour tel — vous demande une copie de votre pièce d'identité, un bulletin de salaire, un avis d'imposition. Vous les envoyez sans marquage. Le « propriétaire » disparaît, et vos documents sont désormais utilisés pour ouvrir des comptes bancaires, contracter des prêts ou usurper votre identité.
Tatouer chaque document que vous envoyez est la défense la plus efficace. Un filigrane visible indiquant « Envoyé à l'agence XYZ — mars 2026 — demande de location uniquement » rend le document inutile à toute autre fin. S'il fuit, vous savez exactement d'où il vient.
firemark rend cela sans effort : une commande, n'importe quelle image ou PDF, 17 styles visuels, des motifs de filigrane cryptographique qui résistent à l'édition, et un traitement par lots pour des dossiers entiers.
Avant et après — une commande, le document est désormais traçable et résistant aux modifications.
Binaire pré-compilé (Linux et macOS, x86_64 et arm64) — télécharge la dernière version dans ~/.local/bin :
curl -fsSL https://raw.githubusercontent.com/Vitruves/firemark/main/install.sh | sh
Les binaires Windows sont joints à chaque release.
Depuis crates.io :
cargo install firemark
Depuis les sources :
git clone https://github.com/Vitruves/firemark.git
cd firemark
cargo install --path .
Produit un binaire unique optimisé (~5 Mo).
# Tatouer une seule image
firemark photo_id.png -m "Location — SCI Dupont — mars 2026"
# Tatouer un PDF
firemark tax_notice.pdf -m "CONFIDENTIEL" -s "Ne pas diffuser"
# Tatouer tout un dossier récursivement
firemark ./documents/ -R -m "Envoyé à l'agence X" -t stamp
# Prévisualiser sans écrire de fichiers
firemark id_card.jpg -m "Brouillon" -n
La sortie est enregistrée à côté de l'entrée sous {name}-watermarked.{ext} par défaut.
Utilisez -o pour définir un chemin de sortie explicite, ou -S pour un suffixe personnalisé.
firemark doc.pdf -t stamp -m "CONFIDENTIEL" --border --color red
firemark superpose des motifs de filigrane cryptographique inspirés des dispositifs de sécurité des billets de banque. Ces motifs géométriques fins sont extrêmement difficiles à enlever avec des éditeurs d'images.
firemark id.png -m "Demande de location" --filigrane moire
firemark id.png -m "Demande de location" --filigrane none # désactiver
## Renforcement anti-suppression par IA
Chaque rendu est non déterministe par défaut. firemark applique une perturbation
universelle post-rendu (variation alpha, bruit de couleur sub-pixel, micro-points de bord,
pixels fantômes épars) et une randomisation par moteur de rendu de sorte qu'aucune
sortie ne soit identique pixel par pixel — même avec les mêmes paramètres. Cela rend
impossible pour les modèles de vision IA d'apprendre un motif prévisible à soustraire.
Par-dessus, des bandes adversariales d'injection d'invite sont intégrées par défaut pour
confondre les outils de suppression de filigrane par IA. Désactivez avec `--no-anti-ai` si vous
ne souhaitez pas le texte d'invite visible :
```bash
firemark doc.png -m "CONFIDENTIEL" --no-anti-ai
-m, --main-text Texte principal du tatouage
-s, --secondary-text Ligne de texte secondaire
-t, --type Style de tatouage (voir tableau ci-dessus)
-o, --output Chemin du fichier de sortie
-S, --suffix Suffixe personnalisé pour la sortie (par défaut : "watermarked")
-c, --color Couleur — nom ou #RRGGBB (par défaut : bleu)
-O, --opacity Opacité 0,0–1,0 (par défaut : 0,5)
-r, --rotation Angle en degrés (par défaut : -45)
-p, --position centre, haut-gauche, haut-droite, bas-gauche, bas-droite, carrelage
-f, --font Nom de police ou chemin vers .ttf/.otf
-I, --image Superposer une image comme tatouage
--qr-data Intégrer un QR code avec des données personnalisées
--qr-code-position Position du QR code (par défaut : centre)
--qr-code-size Taille du QR code en pixels (par défaut : auto)
--border Dessiner une bordure autour du tatouage
--shadow Ajouter une ombre portée
--filigrane Style de filigrane de sécurité (par défaut : guilloche)
--no-anti-ai Désactiver l'injection d'invite antagoniste (activée par défaut)
Pour la liste complète des 70+ drapeaux, voir CLI.md.
--pages Pages à tatouer (ex. 1,3-5 ou "all")
--skip-pages Pages à sauter
--behind Placer le tatouage derrière le contenu
--no-flatten Garder les couches séparées (aplati par défaut)
--dpi Résolution de rendu (par défaut : 150)
# Traiter toutes les images et PDF d'un dossier
firemark ./inbox/ -m "INTERNE" -t tile
# Récursif, 8 threads, suffixe personnalisé
firemark ./docs/ -R -j 8 -m "Brouillon" -S draft
# Essai à blanc — liste ce qui serait traité
firemark ./docs/ -R -m "Brouillon" -n
Les fichiers déjà tatoués (correspondant au suffixe) sont automatiquement ignorés lors des réexécutions.
Enregistrez les options dans un fichier TOML pour éviter de répéter les drapeaux. 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).
# Valeurs globales par défaut
main_text = "CONFIDENTIEL"
secondary_text = "{author} — {date}"
watermark_type = "diagonal"
color = "#1a3c6e"
opacity = 0.45
font_weight = "bold"
filigrane = "guilloche"
border = true
[preset.ultra-secure]
main_text = "CONFIDENTIEL — {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 = "COPIE"
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 # enregistrer les drapeaux actuels
firemark --list-presets # lister les préréglages disponibles
La conversion entre formats est prise en charge (ex. firemark photo.webp -o out.pdf).
MIT
| Drapeau | Style | Description |
|---|
diagonal | Grille diagonale | Texte diagonal répété plein écran (par défaut) |
stamp | Tampon encreur | Grand tampon centré avec double bordure |
stencil | Pochoir | Lettrage pochoir militaire pleine largeur |
typewriter | Machine à écrire | Texte machine à écrire à chasse fixe |
handwritten | Signature | Signature manuscrite avec soulignement |
redacted | Caviardage | Barres de caviardage noires pleine largeur |
badge | Bouclier | Emblème de bouclier de sécurité |
ribbon | Ruban | Bannière en ruban diagonal dans le coin |
seal | Sceau | Sceau circulaire de type notarial |
frame | Cadre | Bordure décorative plein écran |
tile | Carrelage | Grille de texte uniforme dense |
mosaic | Mosaïque | Texte dispersé aléatoirement |
weave | Tissage | Tissage diagonal entrelacé |
ghost | Fantôme | Texte en relief ultra-subtil |
watercolor | Aquarelle | Effet de lavis flou et doux |
noise | Bruit | Texte vieilli avec bruit de pixels |
halftone | Tramage | Texte sous forme de grille de points de trame |
| Style | Description |
|---|
guilloche | Bandes sinusoïdales en enveloppe d'onde (par défaut) |
rosette | Spirographe + courbes rosacées dans les coins |
crosshatch | Treillis diamant fin diagonal |
border | Bordure de sécurité ondulée emboîtée |
lissajous | Figures de Lissajous paramétriques |
moire | Interférence de cercles concentriques |
spiral | Spirale d'Archimède en vortex |
mesh | Grille hexagonale en nid d'abeille |
plume | Courbes fluides en forme de plumes dispersées sur la surface |
constellation | Nœuds d'étoiles reliés par une fine toile géométrique |
ripple | Fronts d'onde elliptiques qui se chevauchent depuis des origines aléatoires |
full | Tous les motifs combinés |
none | Désactiver le filigrane |
| Format | Entrée | Sortie |
|---|
| PNG | oui | oui |
| JPEG | oui | oui |
| oui | oui | |
| WebP | oui | oui |
| TIFF | oui | oui |