我有水印工作正常使用asp.net imageresizer但我想能够通过管理功能设置水印图像。Imageresizer水印 - 改变图像
图像路径在web.config中设置,但如果我覆盖此图像,水印不会更改 - 它总是显示旧图像,除非我更改web.config。所以显然它正在缓存 - 如何让它返回带有新水印文件的图像?
我曾尝试触摸具有应用水印的文件,触摸水印文件本身 - 没有任何工作,除非我改变web.config这是不可行的现场。
我有水印工作正常使用asp.net imageresizer但我想能够通过管理功能设置水印图像。Imageresizer水印 - 改变图像
图像路径在web.config中设置,但如果我覆盖此图像,水印不会更改 - 它总是显示旧图像,除非我更改web.config。所以显然它正在缓存 - 如何让它返回带有新水印文件的图像?
我曾尝试触摸具有应用水印的文件,触摸水印文件本身 - 没有任何工作,除非我改变web.config这是不可行的现场。
水印叠加层是内存缓存以获得最佳性能 - 因此不需要检查磁盘。水印插件可以通过C#重新配置 - 所以如果您需要动态更改水印数据,我会建议这样做,而不是覆盖文件。这是一个新的图像,所以改变文件名。这也将确保立即更新具有过期覆盖/水印的缓存结果。
这就是我通过创建新图像并动态设置指定图层的“路径”来解决问题的方法。
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;
}
谢谢这正是我最终做的,它运作良好。 – Simon