Image avec filigrane

:information_source: Résumé Ajoute automatiquement des filigranes aux images téléchargées par les utilisateurs
:hammer_and_wrench: Dépôt GitHub - Arkshine/discourse-watermark-image · GitHub
:question: Guide d’installation Comment installer un thème ou un composant de thème
:open_book: Nouveau sur les thèmes Discourse ? Guide de démarrage pour l’utilisation des thèmes Discourse

Installer ce composant de thème

Description

Ce composant de thème ajoute automatiquement des filigranes aux images téléchargées par les utilisateurs. Vous pouvez utiliser une image ou un code QR comme filigrane, avec de nombreuses options de personnalisation pour la position, l’apparence et les motifs de répartition.

Le composant offre un contrôle granulaire via les paramètres par catégorie et par groupe d’utilisateurs, vous permettant d’adapter le comportement du filigranage aux besoins de votre communauté.

Veuillez consulter la section Notes importantes avant la mise en œuvre.

Fonctionnalités

  • Traitement haute performance grâce à WebAssembly et aux Web Workers
  • Prise en charge complète des formats d’image (PNG, JPEG, BMP, ICO, TIFF, WEBP)
  • Génération dynamique de filigranes sous forme de code QR
  • Options de taille flexibles (relative ou absolue)
  • Système de positionnement polyvalent
  • Personnalisation avancée de l’apparence (opacité, rotation, échelle, marge, etc.)
  • Modes de fusion multiples
  • Options de répartition en motif (unique, grille, diagonale, aléatoire)
  • Paramètres spécifiques par catégorie et par groupe d’utilisateurs
  • Aperçu en direct dans le panneau de paramètres

Paramètres

Paramètre Description
image L’image à utiliser comme filigrane.
Formats pris en charge : PNG, JPEG, BMP, ICO, TIFF, WEBP.
Par défaut : ""
size_mode Façon dont la taille du filigrane est calculée :
- relative : La taille est relative à la largeur de l’image cible.
- absolute : Appliquée à sa taille originale.
Par défaut : "relative"
relative_width La largeur du filigrane par rapport à la largeur de l’image cible (en %).
Ne s’applique que lorsque le mode de taille du filigrane est défini sur relative.
Plage : 1-100
Par défaut : 10
absolute_scale Facteur d’échelle pour la taille originale du filigrane (utilisé uniquement en mode absolu). Minimum : 0.01
Par défaut : 1
max_size Taille maximale en pourcentage des dimensions de l’image. Plage : 1-100
Par défaut : 50
position Position du filigrane : top-left, top-center, top-right, center-left, center, center-right, bottom-left, bottom-center, bottom-right
Par défaut : "bottom-right"
margin_x Marge horizontale par rapport au bord (en % de l’image cible)
Par défaut : 0
margin_y Marge verticale par rapport au bord (en % de l’image cible)
Par défaut : 0
opacity Opacité du filigrane. Plage : 1-100
Par défaut : 100
rotate Angle de rotation.
Plage : -360 à 360 degrés
Par défaut : 0
blend_mode Façon dont le filigrane se fond avec l’image : normal, overlay, over, atop, xor, plus, multiply, burn, difference, soft_light, screen, hard_light, dodge, exclusion, lighten, darken.
Par défaut : "normal"
pattern Motif de répétition du filigrane : single, grid, diagonal, random
Par défaut : "single"
pattern_allow_partial Autoriser les filigranes partiels sur les bords de l’image
Par défaut : true
pattern_max_count Nombre maximum de répétitions du filigrane (0 pour infini)
Par défaut : 50
pattern_spacing Espacement entre les filigranes répétés (en % de l’image cible)
Par défaut : 15
qrcode_enabled Activer le filigrane sous forme de code QR
Par défaut : false
qrcode_text Texte à encoder dans le code QR. Prend en charge les espaces réservés : {homepage}, {username}, {topic_url}
Par défaut : ""
qrcode_color Couleur du code QR (hexadécimal ou variable CSS)
Par défaut : "var(--primary)"
qrcode_background_color Couleur d’arrière-plan du code QR (hexadécimal ou variable CSS)
Par défaut : "var(--secondary)"
qrcode_quiet_zone Largeur de la bordure d’espace blanc autour du code QR (0-10 modules)
Par défaut : 2
qrcode_error_correction Niveau de correction d’erreur : Low (~7%), Medium (~15%), Quarter (~25%), High (~30%)
Plus d’informations sur les niveaux de correction d’erreur disponibles ici.
Par défaut : "Medium"
categories Catégories où le filigrane doit être appliqué.
Par défaut : ""
groups Groupes auxquels le filigrane doit être appliqué.
Par défaut : "0"
skip_small_images Ignorer le filigranage si l’image est inférieure à min_image_dimensions.
Par défaut : false
min_image_dimensions Dimensions minimales requises (largeur x hauteur)
Par défaut : "200x200"
allow_non_supported_uploads Autoriser la poursuite des téléchargements d’images même si le format n’est pas pris en charge
Par défaut : false

Types de filigranes

Image

Le composant prend en charge plusieurs formats d’image : PNG, JPEG, BMP, ICO, TIFF et WEBP.
Consultez la section FAQ pour des informations importantes sur les limitations de prise en charge des formats.

Code QR

Générez des codes QR dynamiques avec un contenu personnalisable en utilisant ces variables :

  • {homepage} - L’URL de la page d’accueil
  • {username} - Le nom d’utilisateur de l’utilisateur
  • {topic_url} - L’URL du sujet

Important : Lors de la personnalisation des filigranes de code QR, tenez compte du contraste et de la taille. Des ratios de contraste faibles ou un style excessif peuvent rendre les codes QR illisibles. Testez toujours vos filigranes de code QR avec des applications de lecture.

Aperçu en temps réel

Le panneau de paramètres inclut une fonctionnalité d’aperçu en temps réel, vous permettant de voir instantanément comment votre configuration de filigrane affecte une image d’échantillon.
La fenêtre d’aperçu offre plusieurs fonctionnalités interactives :

  • Fenêtre d’aperçu redimensionnable et déplaçable
  • Option pour charger une image d’échantillon aléatoire
  • Prise en charge du téléchargement de vos propres images de test depuis votre appareil

Sur ordinateur, elle s’ouvre automatiquement. Vous pouvez également l’ouvrir via le bouton en bas de la page :

Plus d'images



:warning: Notes importantes

  • Les images originales ne sont pas conservées
    Les filigranes sont appliqués avant le téléchargement vers le serveur, et les images originales ne sont pas conservées. Testez soigneusement vos paramètres de filigrane avant de les déployer en production.

  • Si vous testez dans le panneau d’administration, faites attention de ne pas valider immédiatement vos paramètres. Je recommande de créer un groupe ou une catégorie pour plus de sécurité.

FAQ

Pourquoi les formats d’image sont-ils limités ?

Bien que Discourse convertisse tous les téléchargements en JPEG, ce filigranage de composant de thème (TC) se produit avant le téléchargement sur le format original, en utilisant des bibliothèques spécifiques de traitement d’image. Bien que le filigranage après téléchargement soit possible, cela nécessiterait plusieurs cycles de téléchargement/téléchargement et affecterait l’expérience de l’éditeur. Je explore encore des améliorations pour ce flux de travail.

Pourquoi le filigranage textuel n’est-il pas pris en charge ?

Le filigranage textuel nécessiterait de nombreuses options de configuration (choix de la police, style, etc.) qui seraient difficiles à mettre en œuvre efficacement sans une interface dédiée. Les filigranes d’image offrent plus de flexibilité et peuvent être créés à l’aide d’outils de conception existants.

Feuille de route

Les plans de développement futurs pourraient inclure :

  • Plusieurs profils de filigrane [1]
  • Conservation des images originales [2]
  • Filigranage après téléchargement

Crédits

Ce composant de thème est propulsé par :


  1. L’entrée de téléchargement est partiellement prise en charge avec le type de paramètres d’objet – cela ne peut pas être réalisé dans un TC pour le moment. ↩︎

  2. Pourrait nécessiter le développement d’un plugin. ↩︎

24 « J'aime »

Ceci est la première version, et je m’attends à des fonctionnalités manquantes. J’attends vos commentaires avec impatience ! :+1:

7 « J'aime »

Merci pour le composant. Ce composant traite-t-il les images ? Ce composant compresse-t-il les images à une taille meilleure que l’original ?

5 « J'aime »

Le composant n’effectue aucune modification ni compression, à part l’application du filigrane.

Discourse prétraite déjà l’image (à l’aide de la bibliothèque squoosh) → le filigrane est appliqué → L’image est téléchargée sur le serveur. C’est ainsi que cela fonctionne.

6 « J'aime »


La première fois que vous ouvrez un article et que vous le modifiez, vous ne pouvez pas y mettre de filigrane. Vous devez le publier, puis cliquer sur « Modifier l’article » et télécharger une image pour y mettre un filigrane.
Le thème utilisé est FKB Pro - Social theme - #375 by MihirR

2 « J'aime »

Vous voulez dire que si vous ouvrez/modifiez un article existant pour la première fois et téléchargez une image, il n’y a pas de filigrane. Est-ce correct ? Pouvez-vous le reproduire à chaque fois ? Voyez-vous une erreur dans la console du navigateur ?

Si je comprends bien, vous vous attendez à ce qu’une image existante téléchargée (avant cette installation de TC) ait un filigrane lorsque vous modifiez l’article (ou que vous ayez un moyen de filigraner l’image manuellement). Cela ne fonctionne pas ainsi. Vous devez télécharger l’image pour appliquer un filigrane.

Avoir un bouton pour filigraner manuellement une image sélectionnée pourrait être une fonctionnalité. Cela vous conviendrait-il ?

Ce sont les images téléchargées après la création d’un nouveau message qui n’ont pas de filigrane. Ce sont les images téléchargées après être entré dans le message après publication et avoir cliqué sur modifier qui ont le filigrane.

Pour le bouton de publication, j’utilise Compose Center - #13

Pouvez-vous faire une courte vidéo, s’il vous plaît ? Ce serait utile pour voir et comprendre ce qui se passe.

1 « J'aime »

3 « J'aime »

Merci de votre patience ! J’ai trouvé le problème. Il devrait être résolu maintenant ! :+1:

3 « J'aime »

J’obtiens cette erreur lors de l’installation de ce composant

Đã xảy ra lỗi: Error creating upload asset: worker_photon_wasm. Original filename Sorry, the file you are trying to upload is not authorized (authorized extensions: jpg, jpeg, png, woff, woff2, svg, eot, ttf, otf, gif, js, dwg).

1 « J'aime »

C’est étrange. Quelle est votre version de Discourse ?
Vous pouvez essayer d’ajouter l’extension wasm dans les listes autorisées, mais cela fonctionne bien dans mes deux installations locales et de production sans aucune modification. :thinking:

1 « J'aime »

Je vais vous faire part de mes commentaires. Je ne sais pas ce qui se passe, mais il semble que les utilisateurs chinois n’aient pas de filigranes sur leurs images téléchargées.

Mais j’utilise un compte nouvellement créé avec ce mode sans trace activé et cela fonctionne, donc je ne sais pas quel est le problème.

Parfois ça marche, parfois ça ne marche pas.

Les images à retirer sont .jpeg .png Mais tout comme l’image dans la vidéo, je copie l’image et je la télécharge et elle est filigranée, donc je ne sais pas quel est le problème.

Merci pour vos commentaires !

Pour vous, peu importe comment vous essayez, cela fonctionne toujours, n’est-ce pas ?

Pouvez-vous demander à certains de vos utilisateurs de vérifier la console du navigateur si cela se produit et de vous copier tout message d’erreur qu’ils voient ? Aussi, s’ils utilisent un appareil mobile (Android, iPhone, etc.) - S’ils peuvent expliquer ce qu’ils ont fait exactement pour voir si cela peut aider, ce serait apprécié.

Cela ne ressemble pas à un problème avec l’image elle-même si vous pouvez ensuite appliquer un filigrane à l’image vous-même. Ce qui reste, c’est soit une erreur dans le code comme le problème précédent, soit une erreur dans le processus de filigranage. Malheureusement, je ne peux pas le reproduire, peu importe ce que je fais.

Je vais voir à mettre à jour le composant plus tard pour m’assurer que toutes les erreurs sont interceptées et affichées à l’utilisateur.

Bonjour, merci d’avoir créé ce composant.
Lorsque j’ai essayé de télécharger une photo de filigrane, cette erreur s’est produite. J’ai essayé le JPEG et le Webp également, mais sans succès.

Mon forum Discourse est à jour

1 « J'aime »

Salut @LaptechInfo

C’est étrange. À ce stade, le TC ne devrait rien faire. Ce sont les paramètres de téléchargement standard.
Pouvez-vous regarder dans la console du navigateur et voir si des messages d’erreur s’affichent ?

Est-il possible de fournir une image qui échoue afin que je puisse tester de mon côté également ?

1 « J'aime »

Salut, j’ai essayé de nombreuses images au hasard, mais aucune n’a fonctionné.
Je ne suis pas programmeur, je n’ai aucune connaissance en informatique.
Essayez cette image, j’ai abandonné.
laptechinfo webp.zip (558 octets)
watermark.zip (257,7 Ko)

@Arkshine

1 « J'aime »

Merci ! Pouvez-vous également afficher le contenu de votre console ? L’onglet juste après. Je pense que cela pourrait aider.

EDIT : Je pense que je peux le reproduire, laissez-moi voir, et je reviens vers vous bientôt !

Onglet Console


@Arkshine

@LaptechInfo Merci ! Il y a un bug dans Discourse suite à une PR d’hier. J’ai créé un sujet : Can't upload image in settings. :+1:

3 « J'aime »