Я использую Orchard cms. Я хочу, чтобы при загрузке изображений изображения автоматически попадали в водяной знак. Как я могу это сделать?Как добавить водяной знак автоизображения в фруктовый сад CMS?
ответ
Это должно быть возможным путем предоставления пользовательской реализации IImageFilterProvider
. Найдите этот интерфейс в решении, вы найдете в качестве примера ResizeFilter
и FormatFilter
в модуле Orchard.MediaProcessing
.
Также есть некоторые статьи, такие как http://www.davidhayden.me/blog/developing-custom-image-filters-in-orchard-cms.
Чтобы добавить водяной знак автоматически, вы должны добавить OnPublished
обработчик ImagePart
следующим образом:
OnPublished<ImagePart>((context, part) => {
var mediaPart = part.As<MediaPart>();
// Here you can add watermark code
});
Если вы хотите добавить водяной знак на оригинальном загруженное изображение, вы должны вызвать его из обработчика напрямую , но если вы хотите использовать механизм модуля медиапроцесса (который сохранит исходное изображение как есть и создаст новый с применением фильтров и сохранит его в папке _Profiles
), то вы можете добавить новую реализацию для IImageFilterProvider
, чтобы добавить новую фильтр для конвейера обработки изображений Orchard.
Наконец, я рекомендую использовать плагин ImageResizer.Plugins.Watermark
для достижения этого, потому что Orchard уже использует компонент ImageResizer
в качестве платформы обработки изображений по умолчанию.
Обновление: Пожалуйста, обратитесь к этой link для полной реализации, или этого repo для исходного кода.