我使用Orchard cms。我想在上传图片时,图片会自动获得水印。我怎么能这样做?
答案 0 :(得分:4)
要自动添加水印,您必须为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
组件作为默认图像处理框架。
答案 1 :(得分:0)
这应该可以通过提供IImageFilterProvider
的自定义实现来实现。在解决方案中搜索此界面,您会在ResizeFilter
模块中找到FormatFilter
和Orchard.MediaProcessing
作为示例。
此外,还有一些文章如http://www.davidhayden.me/blog/developing-custom-image-filters-in-orchard-cms。