1

SO上的第一篇文章;希望我做得对:-)

有一种情况,用户需要上传和查看非常高分辨率的文件(他们需要平移、倾斜、缩放和注释图像)。单个文件有时会超过 1 GB,因此无法在客户端加载完整文件。

我们正在考虑让用户将文件上传到服务器(就像每个人一样),然后在服务器端应用一些加密,创建多个不同大小的相对较小的低分辨率图像。然后,我们在网页上为用户提供带有画布大小选项的缩略图,供他们选择并开始工作。

让我们假设用户打开 1280 x 1028 画布大小的低档图像。图像在显示之前会被分解成图块,当用户点击标题时,就像放大到特定的图块一样。客户端将向服务器发送请求,请求获得更高分辨率的标题图像。服务器将发送将再次分解为标题的图像,供用户单击并从服务器获取另一个更高分辨率的图像,依此类推......拥有多个分辨率不同的图像将帮助我们将图像分解为图块并满足用户需求('使用图块继续放大或缩小)。

有没有人处理过巨大的图像文件?您可以建议首选的技术设计吗?如何处理已跨瓷砖分割的区域让我很困扰,所以不确定如何修改上述方法来解决这个问题。

我们需要计划 100 到 200 个用户同时连接到网站,如果重要的话,我们是 .NET 环境

谢谢!

4

1 回答 1

0

这个问题有点模糊。我假设您正在寻找提示,所以这里有一些:

  1. 我看到上传图片首先是一个问题。我来自哪里,上传速度比下载速度慢。(但是如果您需要您的用户上传千兆字节,您可以做一些事情......)也许提供比网络更稳定的上传。如果必须,请使用 FTP。
  2. 转换成更小的部分应该不是什么大问题。使用其中一种可用的工具。也许imagemagick。我看到有一个 .net 包装器:https ://magick.codeplex.com/
  3. 不仅仅是单独转换,我认为重要的是不要每次都在运行中进行(你需要一台非常大的机器),但只有在图像上传后才这样做。如果您想扩展,您可以将其外包给网络中的另一个盒子。
  4. 为观者。这是有趣的部分。有一些现成的。谷歌有一个。它被称为“地图”:)。但是有一个免费的替代方案:来自 OpenStreetmap 项目的 OpenLayers:http ://wiki.openstreetmap.org/wiki/OpenLayers您所要做的就是以正确的方式命名您生成的文件并进行少量配置。
  5. 即使您出于某些原因必须动态创建图块或不能使用 OpenLayers 之类的东西,我也会尝试坚持其命名方案。有一些工作开始从来都不是一个坏主意。
于 2013-09-27T16:29:33.323 回答