Python : Ajoutez un filigrane pour protéger vos images
Sommaire
I. Présentation
Dans ce tutoriel, je vous partage un script Python tout simple qui permet d’ajouter un filigrane (comme un logo) à un ensemble d’images.
En tant que créateur de contenus, protéger les images et les contenus visuels est important. L'ajout d'un filigrane (aussi appelé watermark) est une méthode efficace pour assurer que vos créations restent identifiables et protégées.
II. Pourquoi utiliser un filigrane ?
Un filigrane est une image ou un texte superposé sur une autre image. Le plus souvent, il s’agit d’un logo dans un coin de l’image. Voici à quoi ressemble une image avant et après ajout d’un filigrane :
Ils sont souvent utilisés pour indiquer la propriété ou pour protéger le contenu contre une utilisation non autorisée. Nous avons, par exemple, fréquemment des articles IT-Connect qui sont copiés sur des réseaux sociaux ou d’autres sites, en incluant les images. L’ajout d’un filigrane discret permet d’une part de rappeler l’auteur du contenu à tous, mais aussi de prouver que ce contenu provient bien d’une source identifiée.
À l’air de l’IA, ces filigranes ne sont bien sûr pas une protection 100% efficace. Mais, les retirer nécessitera des efforts supplémentaires que peu sont prêts à fournir, ou une altération de l’image qui dégradera son contenu ou sa compréhension.
Pour rappel, nos contenus sur IT-Connect.fr sont protégés par la licence Creative Commons BY-NC 4.0 (ou licence CC BY-NC 4.0). Voir Puis-je réutiliser le contenu publié sur IT-Connect ?
Il existe de multiple façon d’ajouter une marque à un contenu ou une image, certaines plus discrètes que d’autres. On peut parler des métadonnées, d’un filigrane quasiment invisible ou même l’utilisation de la cryptographie pour la signature du contenu.
III. Présentation du script
Le script que nous allons utiliser est écrit en Python et utilise la bibliothèque PIL (Python Imaging Library) pour manipuler les images. Il permet d'ajouter un filigrane à toutes les images d'un répertoire donné.
Retrouvez ce script commenté sur notre dépôt GitHub !
Attention : ce script modifie vos images. Pour vos premiers tests, je vous recommande de faire une copie de vos images au préalable.
Voici un aperçu de ce que fait le script :
- Parcours du dossier : il commence par lister le contenu du dossier ciblé pour parcourir toute son arborescence.
- Préparation du filigrane : pour chaque fichier image trouvé (PNG, JPG, JPEG), le filigrane est chargé, converti en RGBA pour gérer la transparence en fonction de la valeur fournie.
- Ajout du filigrane : le filigrane est ajouté à chaque image, positionné en fonction des options fournies, avec une largeur maximale de 200 pixels.
- Enregistrement des images modifiées : chaque image est remplacée par sa version modifiée
Il existe bien sûr des sites pour réaliser cette opération. Mais, souvent, l’idée est de travailler fichier après fichier. Avec ce script, toutes les images d’un dossier sont modifiées en une seule fois, il s'agit donc d'un traitement par lot. Sans inscription, abonnement ou quoi que ce soit ! 🙂
IV. Comment utiliser le script
Pour utiliser ce script, vous devez avoir Python installé sur votre machine. Sous Linux, pas de problème. Pour Windows, je vous invite à suivre ce tutoriel :
Une fois Python opérationnel, il est nécessaire d’installer la dépendance pillow
:
# Linux
pip install pillow --break-system-packages
# Windows
pip.exe install pillow
Vous pouvez aussi passer par un virtualenv
pour vous conformer aux bonnes pratiques actuelles.
Une fois cela fait, il suffit de réunir vos images dans un même répertoire, de vous assurer de connaitre le chemin vers l’image à ajouter en tant que filigrane, puis d’exécuter la commande suivante :
python watermark.py -i /chemin/vers/vos/images -w /chemin/vers/votre/filigrane.png
Exemple :
Vous pouvez aussi gérer le niveau de transparence du filigrane avec l’option -t
: 1 équivaut à aucune transparence (le logo est ajouté tel quel) et 0 une transparence totale (logo invisible, pas très utile). L’option accepte des valeurs telles que 0,9, 0,54, 0.4, etc.
$ python3 watermark.py -i ~/Images/article/ -w ITC.png -t 0,50
Par défaut, le filigrane est ajouté avec une transparence de 20% (0,2) :
Et, enfin, vous pouvez gérer la position du filigrane sur l’image avec l’option -p
, qui accepte les valeurs suivantes : top-left, top-right (par défaut), middle, bottom-left, bottom-right.
$ python3 watermark.py -i ~/Images/article/ -w ITC.png -p bottom-left
Par défaut, le filigrane est positionné en haut à droite :
Voici enfin une commande complète utilisant toutes les options :
# Ajoute du filigrane ITC.png en bas à gauche des images
# du dossier ~/Images/article/ avec une transparence de 50%
$ python3 watermark.py -i ~/Images/article/ -w ITC.png -p bottom-left -t 0,5
V. Conclusion
Ce script est un outil simple et efficace pour ajouter un filigrane à vos images. Il est facile à utiliser et personnalisable selon vos besoins. Nous l’utilisons régulièrement pour nos contenus IT-Connect.
N’hésitez pas à partager vos idées d’améliorations et avis dans les commentaires !