代码之家  ›  专栏  ›  技术社区  ›  Nate Noonen

Web浏览器中的超大图像

  •  1
  • Nate Noonen  · 技术社区  · 14 年前

    我们希望在Internet Explorer中显示非常大(50MB以上)的图像。我们希望避免压缩,因为压缩算法并不是CSI希望我们相信的那样,而且结果文件的损耗太大。

    因此,我们提出了两个选项:Silverlight Deep Zoom或基于Flash的解决方案(如Zoomify)。问题是,这两种方法都需要转换为平铺输出和/或转换为特定的文件类型(Zoomify支持单一的专有文件类型pff)。

    我们想知道的是,是否存在一种解决方案,它可以让我们在不进行手动转换的情况下查看图像。

    PS:我知道您可以编写一个应用程序来平铺图像(根据需要或在加载过程之后),并输出它们;但是,我们希望在不中断文件的情况下进行此操作。

    4 回复  |  直到 7 年前
        1
  •  5
  •   Paul McMillan    14 年前

    平铺方法确实是正确的方法。

    您的用户不希望在开始查看图像之前下载50MB文件。您不想花费带宽为每个可能只查看一部分图像的用户提供50兆。

    如果您为整个文件提供服务,用户最终将能够加载和查看它,但对于大多数用户来说,它不会顺利运行。

    没有简单的非平铺方式只为图像的一部分提供服务,除非您希望使用服务器端库(如ImageMagik或PIL)为每个用户提取图像的特定子集。您可能不想这样做,因为这会给您的服务器带来很大的负载。

    或者,您可以使用类似谷歌地图工具的工具来提供缩放和缩放。有关此操作的一些意见可在此处获得:

    http://webtide.wordpress.com/2008/08/27/custom-google-maps/

        2
  •  1
  •   lehanh    7 年前

    看一看 OpenSeadragon . 要使图像可以与OpenSeadragon一起使用,您应该生成一个提到的可缩放图像格式。 here . 然后按照启动指南操作 here

        3
  •  0
  •   Dean J    14 年前

    浏览器无法顺利加载一个50兆的文件;如果不将其切碎,就没有合理的方法使其不延迟。

        4
  •  -1
  •   GrandmasterB    14 年前

    如果不想平铺,可以让服务器打开该文件并呈现图像的屏幕大小视图,以便在浏览器中按要求的特定缩放分辨率显示。这样,当有人只想获得图像的概述时,就不会跨行发送50个MEG文件。也就是说,浏览器请求一组坐标和以像素为单位的输出大小,服务器打开较大的图像并创建适合所需视图的较小图像,然后将其发送回Web浏览器。

    至于压缩,你说它的损耗太大了,但是如果你看到的是这样的话,你可能使用了错误的压缩算法或者你所拥有的图像类型的设置。JPG格式有质量设置来控制损失,PNG压缩是无损的(解压缩后得到的像素是压缩前得到的精确值)。因此,考虑更改正在用作压缩的内容,而不仅仅依赖于图像编辑器中的默认设置。

    推荐文章