【发布时间】:2016-04-13 15:42:19
【问题描述】:
我的网页上有一个博客幻灯片,它可以从给定的 url 访问图像。
问题是,人们添加了大分辨率 (3000px*6000px) 的图像,这会显着减慢幻灯片的动画速度。
这些高分辨率图像是必要的,但不是为了这个特定目的,因为图像位于大小为 (300*600) 的 div 中
在缩小之前,CSS(或其他方式)有什么方法可以将图像转换为更小的指定分辨率(比如 300px * 600px)。
这样动画就不会涉及高分辨率图像帧,因此不会那么滞后。
我能想到的唯一选择是,每次将图像上传到数据库时,后端都会为此创建一个辅助压缩图像。
但是,这似乎需要很多努力。
【问题讨论】:
-
CSS 仅在浏览器中缩放客户端,因此不会加速图像下载。您的替代方案是满足大图像的常用方式。通常,您会存储缩略图大小、标准查看大小(如果需要存档,还可以存储原始未更改的图像)。
-
浏览器端没有办法解决这个问题。您需要在服务器上创建两个版本的图像,分辨率分别为大和小
-
感谢您的回复。但是,问题不是图像下载。下载图像后,动画开始。但高分辨率图像会导致慢速客户端计算机上的动画滞后。然而,由于 div 的大小,不需要高分辨率。那么 CSS 是否可以以全分辨率下载图像,然后将其缩小,然后将其添加到网页以进行查看/制作动画?
-
不,您需要将它们存储在服务器上并生成较小的版本来显示。您可以使用 CSS 在视觉上缩小它,但您仍将使用原始大小的原始图像。但既然您已经让您的用户上传图片,为什么不同时缩放它们呢?
-
有道理,谢谢回复。我没有将图像存储在我自己的服务器上,我要求用户使用 imgur.com 之类的外部图像托管服务,他们只是提供链接。我想避免要求他们上传 2 张图片。如果有替代的图像托管服务可以创建多个不同大小的图像副本,那就太好了!
标签: javascript jquery html css image