Responsive Images:调整大小或动态裁剪?
这个问题实际上不是关于编码,而是为任务选择正确的方法。我不知道它是否违反SO的规则,但在这里,你去..Responsive Images:调整大小或动态裁剪?
我曾经为当地报纸建立了一个小CMS,使他们能够添加他们的帖子和照片的功能。关于这张照片,他们曾经上传过一张照片,我保存了该照片的各种版本,以便根据他们可能选择的不同模板(模板而不是屏幕尺寸)提供服务
现在,我被要求更新这个旧的系统,我面临着响应/适应性的困境。
据我在网上发现,下一件大事是<picture>
元素。我找到了很多资源,当我决定去找它时,我来到了this网站。如果你看看任何图像的来源,你会意识到它有一个查询字符串,如width=940&height=320&mode=crop&scale=both&meta=panoramic
当我调整窗口的大小时,它变得像width=300&height=200&mode=crop&scale=both&meta=square&anchor=topcenter
我相信这个网站使用Image Resizer,并根据屏幕大小,一张照片是由服务器随时处理以输出新图像。
我不明白的是,它的这些方法实际上是更好的,因为 picture
元素仍然需要上传到而imageresizer只需要一个服务器的多个图像,并将其作物 - 调整大小的一个适合屏幕大小。但另一方面,使用picture
元素,服务器不会受到轰炸,请求调整图像大小,但可以通过处理和时间节约现有照片?
Image Resizer库听起来像是您最好的选择 - 节省您上传和管理许多不同图像大小的麻烦!
如果您担心图像调整大小的负担(无论如何小),您可以随时尝试使用DiskCache插件调整图像大小然后将其保存到磁盘 - 随后请求相同大小的图像回报。
在您链接到的网站上,图像src
在浏览器视口(和网站设计)更改时使用JavaScript进行更改。
这意味着浏览器需要等待此JavaScript执行以知道它需要加载哪个图像。
有一套预先定义的图像存储在服务器和现代标记<img srcset="…">
或<picture>
,浏览器获取它需要的一切直接下载HTML时,这意味着即使在任何CSS或JavaScript之前它可以开始下载最好的图像被下载和/或执行。这对于性能来说真的好多了,对用户来说也是如此。另外,由于大多数浏览器现在都支持这些标准,所以即使JavaScript因任何原因被阻止或中断,它也能正常工作。
图片尚未被所有浏览器支持http://caniuse.com/#search=picture,但它显然是最好的,如果你可以在你的上下文中使用它,它可以满足你的需求。另外请注意,像图像调整器这样的服务器可以缓存内容,以避免重复的图像计算。 –