我正在测试部分ImageResizing库,特别是调整大小、磁盘缓存和水印。
我相信我已经正确安装了所有东西,并且 URL 链接如下:
<img src="/images/tests/mytest.png?w=300&watermark=style1" />
在浏览器中呈现良好,并且还使用随机/散列文件名缓存到磁盘。但是,我不知道如何提供带有水印的静态图像。我希望磁盘缓存能够仅根据其文件名提供缓存的图像,但是看着它,我想它需要查询字符串(实际上它可以很好地使用查询字符串静态提供服务)。
我<resizer>
的 web.config 部分内容如下:
<resizer>
<pipeline fakeExtensions=".ashx" />
<plugins>
<add name="DiskCache" />
<add name="AdvancedFilters" />
<add name="Watermark" />
<add name="SimpleFilters" />
</plugins>
<diskCache dir="~/imagecache" />
<watermarks>
<otherimages path="~/site/watermarks" />
<image name="style" path="~/site/watermarks/wmtest.png" imageQuery="filter=alpha(0.65)" Top="175" Left="32" />
</watermarks>
</resizer>
从表面上看,我喜欢ImageDraw(另一个非常强大的库)处理缓存的方式,因为您可以命名缓存文件,并且即使以静态方式请求缓存文件也会得到服务。缺点是 ImageDraw 在代码隐藏中的编程可能要重得多。
我的主要目标是让某些图像带有版权信息,不能通过修改查询字符串来规避。次要目标是提供快速有效的调整大小和缓存,尤其是在缩略图上。ImageResizing 似乎非常适合我的次要目标,但看起来缓存仅适用于查询字符串选项(已记录),除非我错过了另一种方式......因此我的主要问题。
另外,如果不清楚,我正在测试这两个库(ImageResizing和ImageDraw),看看哪一个更适合我们的需求。现在我在 Cassini 本地工作,但部署将在 IIS7 服务器上运行,应用程序在 ASP.NET 4.0 下运行。