2012-04-24 25 views
0

我正尝试将大图像(大小> 80 MB)加载到网页中。用户并不需要一次看到整个图像,只需要看到所需的部分。如何将图像分割为多个pices并按照用户的要求加入它们

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

我环视了一下,但找不到合理的解决方案。

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

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

UPDATE

我尝试使用微软深度缩放作曲家,但没有奏效。我认为它不支持这么大的图像尺寸。我得出这个结论,因为我在微软PhotoSynth尝试了相同的图像,并得到一个错误消息,它只支持文件高达32MBDeep Zoom ComposerPhoto Synth使用相同的文件格式,所以我认为它们可能具有相同的文件大小限制。

深变焦作曲并未产生有意义的错误消息作为错误信息是:文件格式不正确的,但文件是正确的格式(即JPG)。 感谢

+0

这可能是一个愚蠢的问题,但为什么你需要创建一个新的形象,如果你有原始的?用户是否以某种方式操纵它? – 2012-04-24 07:57:09

+0

@EbenRoux我没有创建新的图像,我希望图像被加载成碎片,然后放在一起作为单独的一块被加载到客户端浏览器。如果用户不需要全部查看,真的不希望一次加载整个** 80兆字节**或更多。 – Mayank 2012-04-24 14:07:58

+0

哦,我明白了。会回答。 – 2012-04-25 04:11:28

回答

3
+0

谢谢,我会研究它,并会回复。 – Mayank 2012-04-24 07:08:39

+0

看起来不像'Microsoft Deep Zoom Composer'支持这样大的图像文件,因为我无法将图像文件导入到它。文件在widows图像预览和picassa中正常打开。 – Mayank 2012-04-24 07:30:29

0

自认为是一个相当大的图像来显示我要假设你不能规模它更易于管理的尺寸,你必须表现出它在一些电网。您可以使用与Google地图相同的想法,您可以在用户在视图中移动时单独加载块。

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

我不知道有什么组件可以随心所欲地做你所需要的,但是滚动你自己的应该不会太困难。您可以使用一些容器div,其中排列着网格div,并且当每个视图都显示您加载背景图像位,或者您可以呈现固定数量的div s作为您的网格并随着“视口”移动加载必要的背景图像。

希望是有道理的。

+0

谢谢,是的,需要保持图像的原始分辨率作为特定应用程序的分辨率。我也想过像谷歌地图这样做,但并不知道如何实现它。如果有的话,我会愿意使用一些现成的解决方案。 – Mayank 2012-04-25 04:39:13

0

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

+0

Deep Zoom Composer让我非常容易,我可以使用MDZ库整合和自动化整个系统。 – Mayank 2012-07-30 07:36:18

相关问题