2017-07-07 83 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; 
    }