Image web浏览器中的超大图像

Image web浏览器中的超大图像,image,large-files,deepzoom,Image,Large Files,Deepzoom,我们希望在Internet Explorer中显示非常大(50mb以上)的图像。我们希望避免压缩,因为压缩算法不是CSI让我们相信的那样,并且生成的文件太有损 因此,我们提出了两种选择:Silverlight深度变焦或基于Flash的解决方案(如Zoomify)。问题在于,这两种类型都需要转换为平铺输出和/或转换为特定的文件类型(Zoomify支持单个专有文件类型PFF) 我们想知道的是,是否存在一种解决方案,允许我们在不进行转换的情况下查看图像 PS:我知道您可以编写一个应用程序来平铺图像(根

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

因此,我们提出了两种选择:Silverlight深度变焦或基于Flash的解决方案(如Zoomify)。问题在于,这两种类型都需要转换为平铺输出和/或转换为特定的文件类型(Zoomify支持单个专有文件类型PFF)

我们想知道的是,是否存在一种解决方案,允许我们在不进行转换的情况下查看图像


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

浏览器无法顺利加载50兆的文件;如果你不把它切碎,就没有合理的方法使它不滞后。

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

用户在开始查看图像之前不希望下载50mb的文件。你不想把带宽花在为每一个可能只看到你的一小部分图像的用户提供50兆的服务上

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

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

或者,您可以使用类似谷歌地图工具的工具来提供缩放功能。此处提供了有关执行此操作的一些评论:


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


至于压缩,你说它太有损,但如果你看到的是这种情况,你可能使用了错误的压缩算法或图像类型设置。jpg格式具有控制丢失的质量设置,PNG压缩是无损的(解压缩后得到的像素是压缩前的精确值)。因此,考虑将您正在使用的压缩作为更改,而不只是依赖于图像编辑器中的默认设置。要使图像能够与OpenSeadragon一起工作,您应该生成一个可缩放的图像格式,如前所述。然后按照《起步指南》

的要求进行操作,这就是我的想法,我只是想把它扔出去。社区提出的一些解决方案让我大吃一惊,所以我问,尽管我对解决方案有99%的把握:)我肯定也做了同样的事情,有时还发现了非常有趣的建议。希望我能为你提供一个更好的解决方案……同样值得注意的是(取决于你的图片种类),你可以使用谷歌的地图工具作为silverlight或flash的替代品。我用一个链接更新了答案。任何压缩算法在特定点后都会有损。你不能把一个50mb的JPG缩小到一个适合网络的大小(大约1mb左右),而不失去它的保真度。你可以把它写下来,但不要写得太远。你完全错了。PNG压缩是无损的。GIF压缩也是如此。想想看。。。如果所有的压缩算法都是有损的,你认为如何压缩一个500兆的文件并将其解压,将原始文件取回?我的意思是,在不切换到有损压缩的情况下,可以将其压缩到一定的大小限制。你可以把一个50mb的PNG变成40mb。如果将流放气为压缩,则可能会降低到20mb。据我所知,如果不进行有损压缩,将50mb图像压缩到1mb是不可能的。您可以将500兆图像压缩到几个字节的大小。。。如果全是黑色的。压缩比取决于被压缩的数据和算法。您既没有在问题中指定要压缩的图像类型(照片、地图等),也没有指定目标大小或质量要求。图像的类型很重要,因为照片上的好东西不一定是地图上的好东西。