我正在摄影网站上工作,其中可以上传全分辨率照片,但不能显示/访问全分辨率(完整资源的下载将通过代币进行。)
我已经尝试过" restrictTo"设置,但决议不必依赖于指定的尺寸。
有没有办法让myphoto.jpg默认情况下没有查询字符串显示,例如700x700,但仍然可以通过令牌下载获得完整的分辨率文件?实际上,没有查询字符串的图像仍由Imageprocessor处理,但具有默认的调整大小规则。
答案 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/