我使用asp.net imageresizer工作正常,但我希望能够通过管理功能设置水印图像。
图像路径在web.config中设置,但是如果我覆盖此图像,水印不会改变 - 它总是显示旧图像,除非我更改web.config。显然它正在缓存 - 如何使用新的水印文件返回图像?
我尝试触摸已应用水印的文件,触摸水印文件本身 - 除非我更改了对于实际网站不可行的web.config,否则无效。
答案 0 :(得分:1)
水印叠加是内存缓存的,以获得最佳性能 - 因此无需磁盘检查。 Watermark插件可以通过C#重新配置 - 所以如果你需要动态更改水印数据,我建议这样做,而不是覆盖文件。它是一个新图像,因此请更改文件名。这也将确保立即更新过时的叠加/水印的缓存结果。
答案 1 :(得分: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;
}