在Web浏览器中处理非常大的图像文件

时间:2013-09-27 16:15:41

标签: image-processing

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

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

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

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

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

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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