0

我正在尝试将大图像(大小 > 80 MB)加载到网页中。用户实际上并不需要一次查看整个图像,而只需要查看请求的部分。

图像的尺寸约为10k x 10k

我环顾四周,但找不到解决问题的合理方法。

我想根据需要将图像拆分成若干块(例如 9 块,每块 3k x 3k)并根据用户请求将它们加载到页面中或移动到图像的下一部分(例如,如果用户越过3k x 3k边界,服务器将根据需要发送侧片或底片)。

我确实找到了如何分割图像的方法,但找不到动态地做到这一点并将它们动态地缝合在一起的方法。

更新

我尝试使用Microsoft Deep Zoom Composer,但没有奏效。我认为它不支持如此大的图像尺寸。当我在Microsoft PhotoSynth中尝试相同的图像时,我得出了这个结论,并收到一条错误消息,它只支持最大32MB的文件。Deep Zoom ComposerPhoto Synth使用相同的文件格式,所以我认为它们可能具有相同的文件大小限制。

Deep zoom Composer 没有产生有意义的错误消息,因为错误消息是,文件格式不正确,但文件格式正确(即 jpg)。谢谢

4

3 回答 3

3

您可以使用Microsoft Deep Zoom Composer

于 2012-04-24T07:05:23.097 回答
0

由于这是要显示的相当大的图像,我将假设您无法将其调整到更易于管理的尺寸,并且您必须在某些网格中显示它。您可以使用与谷歌地图相同的想法,当用户在视图中移动时单独加载块。

您将如何构建该视图将取决于您,因为即使 3k x 3k 像素也比大多数屏幕分辨率大一些。您可能需要更小的块。

我不知道有任何组件可以做你需要的,但自己动手应该不会太难。您可以使用一些容器,其中设置div了 grid divs,当每个容器进入视图时,您加载背景图像位,或者您可以渲染固定数量的divs 作为您的网格,并在“视口”移动时加载必要的背景图像。

希望这是有道理的。

于 2012-04-25T04:19:20.037 回答
0

我认为您应该将其转换为另一种文件格式,例如 bmp,这样您就可以轻松地在文件中导航到所需的像素,用这些像素组成新图像并将其发送,或者保存并重新读取。最大的问题是新的图像尺寸。

于 2012-07-19T02:44:58.240 回答