我有水印工作正常使用asp.net图像大小,但我希望能够通过一个管理功能设置水印图像。
图像路径是在web.config中设置的,但如果我覆盖此图像,水印不会更改-除非我更改web.config,否则它始终显示旧图像。所以很明显,它被缓存了--如何让它返回带有新水印文件的图像呢?
我试着触摸应用了水印的文件,触摸水印文件本身-除非我更改web.config,否则一切都不起作用,这对于实时站点是不可行的。
发布于 2017-07-08 00:57:30
水印覆盖是内存缓存的,以实现最佳性能-因此无需磁盘检查。水印插件可以通过C#重新配置-所以如果你需要动态改变水印数据,我建议这样做,而不是覆盖文件。这是一个新的图像,所以更改文件名。这也将确保缓存的结果与过时的覆盖/水印立即更新。
发布于 2017-07-13 03:17:33
这就是我如何解决这个问题的,通过创建一个新的图像并动态设置命名图层的“路径”。
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;
}https://stackoverflow.com/questions/44967758
复制相似问题