2017-07-07 72 views
0

我有水印工作正常使用asp.net imageresizer但我想能够通过管理功能设置水印图像。Imageresizer水印 - 改变图像

图像路径在web.config中设置,但如果我覆盖此图像,水印不会更改 - 它总是显示旧图像,除非我更改web.config。所以显然它正在缓存 - 如何让它返回带有新水印文件的图像?

我曾尝试触摸具有应用水印的文件,触摸水印文件本身 - 没有任何工作,除非我改变web.config这是不可行的现场。

回答

1

水印叠加层是内存缓存以获得最佳性能 - 因此不需要检查磁盘。水印插件可以通过C#重新配置 - 所以如果您需要动态更改水印数据,我会建议这样做,而不是覆盖文件。这是一个新的图像,所以改变文件名。这也将确保立即更新具有过期覆盖/水印的缓存结果。

+0

谢谢这正是我最终做的,它运作良好。 – Simon

0

这就是我通过创建新图像并动态设置指定图层的“路径”来解决问题的方法。

public static void SetWatermarkFile(string layername, string filename) 
    { 
     var wp = ImageResizer.Configuration.Config.Current.Plugins.Get<ImageResizer.Plugins.Watermark.WatermarkPlugin>(); 
     var named = wp.NamedWatermarks[layername]; 
     ((ImageResizer.Plugins.Watermark.ImageLayer)((ImageResizer.Plugins.Watermark.Layer[])named)[0]).Path = WatermarkFilesPath + "/" + filename; 
    }