Browser 是否允许将图像大小调整留给客户端(浏览器)来完成

Browser 是否允许将图像大小调整留给客户端(浏览器)来完成,browser,image,resize,Browser,Image,Resize,浏览器可以根据您指定的属性调整图像大小 不过,我认为大多数调整都是在服务器端完成的,最好是在请求之前。以当前CPU的速度,为了简单和可能节省带宽,是否可以让浏览器调整图像大小?是的,浏览器可以根据宽度和高度属性调整图像大小,但是您无法控制调整图像大小的质量。如果这是您关心的事情,那么应该在服务器端完成 另一件需要注意的事情是,即使调整大小的图像比原始图像小,它仍然与完整大小的图像具有相同的文件大小。因此,如果要让浏览器以100px×100px的速度创建2MB文件,用户仍然必须首先下载所有2MB文

浏览器可以根据您指定的属性调整图像大小


不过,我认为大多数调整都是在服务器端完成的,最好是在请求之前。以当前CPU的速度,为了简单和可能节省带宽,是否可以让浏览器调整图像大小?

是的,浏览器可以根据宽度和高度属性调整图像大小,但是您无法控制调整图像大小的质量。如果这是您关心的事情,那么应该在服务器端完成


另一件需要注意的事情是,即使调整大小的图像比原始图像小,它仍然与完整大小的图像具有相同的文件大小。因此,如果要让浏览器以100px×100px的速度创建2MB文件,用户仍然必须首先下载所有2MB文件。

浏览器上发生的大小调整只是显示大小调整-下载完整图像并以所需大小显示。它们的外观将由浏览器编写者编写的一些图像大小调整算法决定——您无法控制质量

这是一个带宽问题,也可能是客户机上CPU和内存使用的问题

正如您所猜测的,大多数图像都是在收到任何请求之前就预先确定大小的。即使使用快速CPU,您也不希望在运行时执行此操作


较小的图像也意味着没有宽带的用户可以在不等待下载较大图像的情况下欣赏您的网站。

我在服务器上对图像进行个性化调整(缩略图),并将其保存在单独的文件夹中。这有助于我保持低带宽

如果您不想将它们存储在服务器上,只需根据请求(在线)执行即可,您可以使用一些很酷的脚本,例如TimThumbis:

一切都取决于服务器的负载和每页图像的数量(当然也取决于流量)
如果你想将它们存储在你的服务器上,那么你可以使用http://phpthumb.sourceforge.net/或ImageMagick(我使用它来制作缩略图+水印)

即使我们在更高的用户带宽方面取得了进步,我仍然认为允许浏览器调整图像大小是不可接受的。事实上,带宽仍然因用户的服务水平而异

您还需要考虑可能的用例。想象一个新闻故事列表,每个故事都有自己的缩略图,这些缩略图基于底层文章的主图像。现在让我们假设我们在一页视图中显示了其中的20个

即使是那些有着高带宽连接的人也会注意到那些(为了论证)2MB图像突然出现。这假设上传内容的人在图片大小方面是在实行某种限制。如果说这些图像是直接从扫描得到的,那么它们可能会变得更大

如果你的网站是在公共互联网上,你几乎可以保证你的一些用户将没有足够的带宽。抱怨会接踵而至,最终会给你带来负面影响

我们甚至还没有涉及像纵横比这样的东西。当客户机试图将一个又长又细的图像放入为方形图像设计的容器时会发生什么?这个网站看起来不专业,就是这样

另外,将这些大文件发送到n个客户端的成本是多少?带宽不是免费的


因此,让浏览器调整图像大小是绝对不能接受的,尤其是当您可以投资或开发服务器端图像处理库时。这将处理大小调整、裁剪等问题。它还将帮助您为所有用户提供最佳性能体验。并不是每个人都有50Mb的内存进入他们的办公场所。

一个用例是当你有一个缩略图和一个全尺寸的图像,或者各种尺寸的图像要显示时。在这种情况下,可以使用一个图像并调整大小。请注意,现代浏览器现在使用双三次重采样,因此在调整大小时不会遇到锯齿状、粗糙的插值和大量瑕疵,这曾经是不让浏览器调整图像大小的一个非常有说服力的理由。

我遇到了一个网站,该网站购买了库存照片,并将2Mpx原始图像嵌入其网页,其缩略图大小约为150px。我只是注意到,因为加载页面大约需要一分钟


另一方面,我可以将我的浏览器缩放300%,图像保持清晰(并且仍然没有达到其本机分辨率)。我猜这不是设计目标。

你想错了。调整大小是在客户机上完成的。问题是你可以这样说。如果某个常规HTML页面进入浏览器,链接一个图像,则是在客户端完成。但通常情况下,在第一次请求之前很久,图像的大小就已经达到了所需的大小。因此,它是“服务器端”完成的。但是,如果我们谈论一些使用大量Javascript的“动态”事物,并按需加载图像(Ajax风格等),那么我认为这个问题可能会出现。@Oded——我猜在总体方案中,“艺术”人员应该提供正确的“调整大小”维度的资产,以避免客户进行工作。仍然(几乎)不适合让(http)服务器进行调整大小(基于html标记,它只能假设客户端正在下载图像)。@Chris-也许你应该让Flikr和Ebay的人知道,他们似乎弄错了。原始图像通常为3-10MB,而调整大小的图像通常只有200K。平均互联网连接时间为1秒,而不是50秒。智能服务器可以为客户端提供多个版本以及原始版本和。要说服所有人在上传图像之前手动调整图像大小,这有点太过遥远了。对于文件大小的说明,投票赞成。这应该是您不在客户端执行此操作的主要原因。