有没有办法限制在Umbraco中使用Imageprocessor提供全分辨率图像?

时间:2017-06-29 19:05:52

标签: umbraco imageprocessor

我正在摄影网站上工作,其中可以上传全分辨率照片,但不能显示/访问全分辨率(完整资源的下载将通过代币进行。)

我已经尝试过" restrictTo"设置,但决议不必依赖于指定的尺寸。

有没有办法让myphoto.jpg默认情况下没有查询字符串显示,例如700x700,但仍然可以通过令牌下载获得完整的分辨率文件?实际上,没有查询字符串的图像仍由Imageprocessor处理,但具有默认的调整大小规则。

2 个答案:

答案 0 :(得分:1)

  

我可以通过myphoto.jpg请求原始宽度为5000px的图像?width = 1400但是生成的图像是完整的5000px宽度图像,为什么不提供最大宽度1400px图像?

如果你正在获得完整的图像,那就意味着出了问题。 (你可能用完了连续的内存)所以请确保你处于64位模式。

timer.Interval = 30; // for 30 ms 仅将resize参数限制为上限。所以对它自己没有任何作用。

您可能正在寻找的是maxWidth事件

http://imageprocessor.org/imageprocessor-web/imageprocessingmodule/#events

我首先要设置ImageProcessor.Web,通过更改ValidatingRequest property来拦截processing.config文件中的所有图片请求。这将确保您在没有令牌的情况下捕获任何查看图像的尝试。

如果您可以取消请求并更改/添加任何查询字符串参数以透明地限制您的大小,而不向最终用户显示查询字符串。

答案 1 :(得分:0)

我会为图像使用查询字符串。

URL宽度= 1400安培;高度= 900安培;模式=作物&安培;锚=中心

我还会使用延迟加载,因此页面加载速度较快,图像模糊较小,然后用完整的res或querystring替换它们,以获得要显示的最大尺寸。

我为此写了一个脚本。 http://www.codeshare.co.uk/blog/lazy-loading-images/

同样在我的网站上,当我上传图片时,我会在保存时自动将其调整为1080p分辨率。因此,我可以上传大量图片,而不必担心首先调整大小或者占用我服务器上的太多空间。

这也是代码 http://www.codeshare.co.uk/blog/automatically-resize-your-media-images-in-umbraco/