Outil de Filigrane d'Image
Ajouter des filigranes texte ou image aux images, ajuster la position, l'opacité et la taille
Glissez les images ici, ou cliquez pour sélectionner des fichiers
Supporte les formats JPG, PNG, WebP, BMP, sélection multiple à la fois
Qu'est-ce que le filigrane d'image ?
Le filigrane d’image ajoute du texte, un logo ou une autre image sur une photo afin d’indiquer l’auteur, la source, la marque, le statut d’usage ou le contexte de publication. On l’utilise pour des photos produit, portfolios, événements, supports de formation, publications sociales et aperçus envoyés avant validation. Tout repose sur l’équilibre: le filigrane doit être assez visible pour limiter la réutilisation non souhaitée, sans masquer le sujet, les détails importants ni donner un rendu amateur. Position, opacité, taille, répétition et rotation doivent être adaptées. Le traitement local dans le navigateur évite d’envoyer l’image originale.
Guide d'utilisation
Comment utiliser
- Glissez ou cliquez pour téléverser des images (prise en charge de plusieurs fichiers)
- Sélectionnez le type de filigrane : texte ou image
- Définissez contenu, position, opacité, taille et rotation du filigrane
- Cliquez sur « Ajouter le filigrane », prévisualisez et téléchargez
Points de vigilance
- Prévisualisez sur différentes tailles d'image ; un filigrane lisible en grand peut devenir trop intrusif ou illisible en miniature.
- Conservez un original sans filigrane pour pouvoir ajuster la position, l'opacité ou le libellé plus tard.
Cas d’utilisation
Principe technique
L'application de filigrane s'effectue entièrement sur un canevas 2D. L'image source est dessinée dans un HTMLCanvasElement à ses dimensions pixel natives via ctx.drawImage, puis un texte ou un logo est composé par-dessus à l'aide de ctx.fillText pour les chaînes et d'un second appel drawImage pour les superpositions raster. L'opacité est contrôlée par ctx.globalAlpha, qui se multiplie sur chaque canal alpha suivant ; un globalAlpha de 0,5 appliqué à un PNG à 50 % de transparence donne 25 % sur le pixel final, ce qui est la cause la plus fréquente des rapports de bug « pourquoi mon filigrane est-il invisible ». Le positionnement utilise les transformations standard du canevas : ctx.translate déplace l'origine vers l'ancre de placement (en haut à gauche, en haut à droite, au centre, en bas à droite, ou chaque cellule d'une grille 3×3), ctx.rotate(angle) incline un tampon diagonal autour de cette origine, et l'appel de dessin place la marque sans décalage supplémentaire. Les filigranes en mosaïque utilisent CanvasPattern.createPattern avec la source pivotée et ctx.fillRect sur tout le canevas, ce qui permet à une bande BROUILLON sur toute la page de rester uniformément espacée quelle que soit la taille de la source. Les métriques de police proviennent de ctx.measureText, qui rapporte des pixels CSS, de sorte qu'un libellé de 28 px tenant dans l'aperçu sur un écran 2x peut être tronqué à l'export mobile 1x. L'étape d'export appelle canvas.toBlob avec 'image/png', 'image/jpeg' ou 'image/webp' et un paramètre de qualité optionnel pour les formats avec perte. Le canevas s'exécute à la résolution source, la sortie préserve donc les dimensions pixel d'origine mais ne conserve pas l'orientation EXIF source, le profil ICC ni les autres métadonnées. Les lots de plus de 30 gros fichiers commencent à bloquer le thread UI car toBlob est asynchrone mais la pile de dessin s'exécute de manière synchrone sur le thread principal, ce qui explique qu'une charge de travail importante bénéficie du déplacement du travail de canevas dans un Web Worker avec OffscreenCanvas.
- Pile de composition : ctx.drawImage pour la base, ctx.fillText (ou un second drawImage) pour la marque, ctx.globalAlpha pour la multiplication de la transparence.
- Calcul de l'alpha : globalAlpha se multiplie sur l'alpha existant de chaque pixel, une marque à 0,5 sur un PNG à 0,5 d'alpha rend donc à 0,25, et non 0,5.
- Rotation : ctx.translate vers l'ancre, ctx.rotate(angle) en radians, puis dessin à l'origine (0,0) pour que la transformation reste centrée sur le point de placement.
- Mosaïque : createPattern retourne un CanvasPattern que fillRect peut peindre sur tout le canevas, maintenant un espacement uniforme quelle que soit la taille de la source.
- Métriques de texte : measureText rapporte des pixels CSS, un libellé dimensionné sur un aperçu x2 peut donc déborder du bord de l'image à l'export mobile x1 ; dimensionnez proportionnellement à canvas.width en cas de doute.
- Export : toBlob('image/png' | 'image/jpeg' | 'image/webp', quality) préserve la résolution source mais supprime l'EXIF et l'ICC ; appliquez la rotation selon l'orientation EXIF avant le dessin si la correction portrait/paysage est importante.
Exemples
Texte de copyright en bas à droite
Type : Filigrane texte
Texte : "(c) 2026 ToolAct Studio"
Police : 28 px, blanc (#FFFFFF)
Position : bas à droite
Opacité : 50 %
Usage : photos de portfolio, images de héros de blogMarque "brouillon" en mosaïque diagonale sur toute l'image
Type : Filigrane texte, en mosaïque
Texte : "DRAFT - DO NOT SHARE"
Police : 48 px, gris clair (#CCCCCC)
Rotation : -30 degrés
Opacité : 25 %
Espacement de mosaïque : 200 px
Usage : prises de produits non publiées en revue clientLogo PNG en haut à gauche, échelle 15 %
Type : Filigrane image
Fichier de filigrane : brand-logo.png (fond transparent)
Position : haut à gauche, retrait 20 px
Échelle : 15 % de la largeur de l'image originale
Opacité : 80 %
Résultat : le logo apparaît en 288 px de large sur une image de héros de 1920 pxTraitement par lot de 30 photos de produits
Entrée : 30 photos JPG de produits, 2000 x 2000 px chacune
Filigrane : texte "shop.toolact.com"
Position : centre bas, marge 40 px
Opacité : 60 %, Format de sortie : JPG, qualité 92
Temps de traitement : ~8 s, sortie totale : 24 MoFAQ
L'image est-elle téléchargée pour le filigranage ?
Non. Le filigrane est composé sur l'image dans votre navigateur en utilisant canvas. Les octets originaux ne quittent jamais votre appareil, et la sortie filigranée non plus.
Quels styles de filigrane sont pris en charge ?
Filigranes texte (chaîne personnalisée, taille de police, couleur, opacité, rotation, mosaïque/répétition pour une couverture complète) et filigranes image (votre propre logo superposé à une position et opacité choisies). La plupart des builds prennent en charge les deux à la fois.
Où dois-je placer le filigrane ?
Le placement en coin (généralement en bas à droite) est le moins intrusif mais facile à recadrer. Les filigranes en mosaïque sur toute l'image sont plus difficiles à supprimer proprement mais réduisent l'attrait visuel. Les filigranes semi-transparents centrés équilibrent les deux. Choisissez en fonction de la priorité : la lisibilité ou la protection des droits d'auteur.
Le filigrane peut-il être supprimé ?
Un attaquant déterminé peut généralement supprimer les filigranes en coin unique par recadrage ou remplissage sensible au contenu, surtout sur des photos avec des arrière-plans réguliers. Les filigranes en mosaïque, semi-transparents sont plus difficiles. Aucun filigrane n'est inamovible : traitez-le comme un dissuasif et un marqueur de droit d'auteur, pas comme une protection réelle.
Quel format et quelle qualité de sortie ?
Le PNG préserve les bords du filigrane de manière nette (recommandé pour le dessin au trait et les captures d'écran). Le JPEG ré-encode le résultat et peut adoucir légèrement le filigrane ; choisissez une qualité de 90+ pour une sortie propre. La page vous permet de choisir le format et la qualité.
Les EXIF et métadonnées sont-elles préservées ?
Très probablement non : le traitement basé sur canvas supprime généralement les données EXIF et de profil ICC. Cela peut être un avantage pour la confidentialité (les métadonnées de votre appareil photo, la localisation GPS et l'horodatage sont supprimées) mais signifie que la copie filigranée n'est plus un original médico-légal.
Puis-je filigraner plusieurs images en lot ?
Oui. Déposez plusieurs fichiers ; le même filigrane est appliqué à chacun. La taille du lot est limitée par la mémoire du navigateur : les très grands lots ralentissent le traitement ou provoquent un manque de mémoire sur mobile. Traitez par tranches d'environ 20-50 images pour la stabilité.