Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我是否可以使用JavaScript调整图像大小(不是缩放,而是实际调整大小)_Javascript_Image_Web Applications_Resize - Fatal编程技术网

我是否可以使用JavaScript调整图像大小(不是缩放,而是实际调整大小)

我是否可以使用JavaScript调整图像大小(不是缩放,而是实际调整大小),javascript,image,web-applications,resize,Javascript,Image,Web Applications,Resize,我需要动态加载并在屏幕上显示大量图像-可能是1000–3000左右。通常这些图片大小不同,我从用户那里得到它们的URL。因此,其中一些图片可以是1024x800或10x40像素 我写了一个很好的JS脚本,在一个页面上很好地显示了它们(ala Google Images搜索风格),但是它们仍然需要大量的内存(一个页面上有100500K的图像是不好的),所以我考虑了真正调整图像大小的选项。比如制作一个1000x800像素的图像,比如100x80,然后忘记(释放内存)原来的图像 是否可以使用JavaS

我需要动态加载并在屏幕上显示大量图像-可能是1000–3000左右。通常这些图片大小不同,我从用户那里得到它们的URL。因此,其中一些图片可以是1024x800或10x40像素

我写了一个很好的JS脚本,在一个页面上很好地显示了它们(ala Google Images搜索风格),但是它们仍然需要大量的内存(一个页面上有100500K的图像是不好的),所以我考虑了真正调整图像大小的选项。比如制作一个1000x800像素的图像,比如100x80,然后忘记(释放内存)原来的图像


是否可以使用JavaScript(无需服务器端处理)完成此操作?

我建议使用另一种方法:使用分页

比如说,显示15幅图像。然后,用户单击“下一页”并显示下一页

或者,更好的是,您可以编写脚本,当用户到达页面末尾时,自动加载下一页


如果这样的事情不是你想做的。也许你想做一个图像拼贴,然后也许你可以检查CSS3转换。我认为他们应该很快。

你要做的是从客户那里承受一些压力,以便它能够处理所有的图像。让它调整所有图像的大小(JavaScript是客户端的)效果正好相反,因为实际调整图像的大小通常比仅仅显示图像要昂贵得多(而且浏览器JS也不可能)


通常,总有比一次显示那么多项目更好的解决方案。一种是动态加载,例如当用户向下滚动页面(就像新的Facebook个人资料一样)或使用分页。我无法想象所有1k-3k图像会同时可见。

没有原生的JS方法可以做到这一点。您可以使用Flash攻击某些东西,但确实应该调整服务器上图像的大小,因为:

  • 将这些500K大图像传输到客户端将节省带宽
  • 客户端将能够缓存这些图像
  • 您将获得更快的加载页面
  • 您将能够在内存中容纳更多的缩略图,因此需要更少的分页
  • 更多
  • 我(相当)确信它可以在支持画布的浏览器中完成。如果这是一条你想走的路,你应该开始

    我注意到画布方法可能存在的问题:

  • 调整许多图像的大小可能需要很长时间(相对而言)。正因为如此,你可能不得不考虑利用
  • 如果从DOM中删除图像和/或删除对这些图像的所有引用,浏览器是否会释放内存?我不知道
  • 还有一些经过画布调整大小的图像的漂亮图片:


    这个答案需要一个忍者:-->Qk

    我对分页(附在底部)没有问题。问题是我想显示成千上万的图像,我不想浏览器挂起或失去响应。图像不在我的服务器上。我想为客户端节省带宽,我无法知道图像的大小,甚至最糟糕的是,不知道图像是否真的存在。然后使用代理。当原件在客户端时,无法避免客户端加载。[作者免责声明]->是一个服务器端模块,可以代理图像请求并动态调整/重新压缩它们,以便客户端只获得所需的最小字节。这是要求。。。它甚至可以超过这个(~10k)。需要考虑一些创造性的方法来解决这个问题是的,它可能必须是一种创造性的方法,因为这个要求不可能完全满足您描述的方式。