0

我正在测试部分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 似乎非常适合我的次要目标,但看起来缓存仅适用于查询字符串选项(已记录),除非我错过了另一种方式......因此我的主要问题。

另外,如果不清楚,我正在测试这两个库(ImageResizingImageDraw),看看哪一个更适合我们的需求。现在我在 Cassini 本地工作,但部署将在 IIS7 服务器上运行,应用程序在 ASP.NET 4.0 下运行。

4

1 回答 1

1

是的,它就是这样工作的。图像被 DiskCache 插件缓存到静态文件中,然后 URL 被重写。

于 2013-05-30T14:25:48.557 回答