J'utilise Orchard cms. Je veux que lorsque les images sont téléchargées, les images soient automatiquement filigranées. Comment puis-je faire ceci?Comment ajouter un filigrane d'image automatique dans le verger CMS?
Répondre
Cela devrait être possible en fournissant une implémentation personnalisée de IImageFilterProvider
. Recherchez cette interface dans la solution, vous trouverez un ResizeFilter
et FormatFilter
dans le module Orchard.MediaProcessing
à titre d'exemple. Il existe également des articles comme http://www.davidhayden.me/blog/developing-custom-image-filters-in-orchard-cms.
Pour ajouter un filigrane automatiquement, vous devez ajouter un gestionnaire OnPublished
pour ImagePart
comme suit:
OnPublished<ImagePart>((context, part) => {
var mediaPart = part.As<MediaPart>();
// Here you can add watermark code
});
Si vous souhaitez ajouter le filigrane sur l'image Uploaded d'origine, vous devez appeler à partir du gestionnaire directement , mais si vous voulez utiliser le mécanisme du module de traitement des médias (qui conservera l'image originale telle qu'elle est et en créera une nouvelle avec les filtres appliqués et l'enregistrera dans le dossier _Profiles
), vous pouvez ajouter une nouvelle implémentation pour IImageFilterProvider
pour ajouter un nouveau filtre pour pipeline de traitement de médias Orchard.
Enfin, je vous recommande d'utiliser le plugin ImageResizer.Plugins.Watermark
pour y parvenir, car Orchard utilise déjà le composant ImageResizer
comme framework de traitement d'image par défaut.
Mise à jour: S'il vous plaît se référer à cette link pour la mise en œuvre complète, ou ce repo pour le code source.