为新的深度缩放应用程序正确选择工具



我想创建一个新的应用程序。它基本上是一个用户可以绘制注释的深度缩放应用程序(它将保存到数据库中,以便其他用户可以看到这些注释)。起初,它只是简单地在浏览器中运行。然而,如果该应用程序可以被该领域的爱好者使用,那么它将是有用的,因此能够在智能手机或其他手持设备上运行将是非常有益的。在这些地方,3G/4G信号可能实际上是不存在的,所以能够下载一个"区域"的所有图像和信息是很好的。

我不能决定使用哪种技术。Silverlight Deep Zoom应用程序在浏览器中看起来真的很不错,但我听说它并不是一项被广泛支持的技术,微软可能会抛弃它,唯一能够运行Silverlight的智能手机将是Windows手机,它在智能手机市场上的份额非常小。Flash可能永远不会在iphone或苹果产品上运行。所以我应该使用HTML5吗?HTML5现在对我来说似乎有点混乱,是否有可能制作一个用户可以注释的HTML5深度缩放应用程序?

几年前我写了一个支持注释的Deep Zoom应用程序作为概念验证。

我用Django来做这个,但是这不是我推荐的方法。如果我再次做同样的工作,我会使用基于HTML5的CanvasZoom。Canvas Zoom可以通过javascript嵌入到网页中。这里有一个关于如何做到这一点的指南:

链接

不幸的是,你需要首先在原始图像上运行微软DeepZoom作曲家,以便生成CanvasZoom将使用的深度缩放数据。如果你想让你的应用程序在浏览器中运行,你可能不得不采用以下方法:

  1. 用户选择图片。
  2. 图片上传到服务器
  3. 服务器创建深度缩放信息
  4. 使用基于PHP的方法,这样您就可以为图像创建画布缩放页面。

注释可能会使事情复杂化,当我尝试使用javascript时,我就这样做了。诀窍是计算出图像何时被放大(使用画布缩放有预设的缩放级别)并重新绘制注释区域。我发现这个方法很重要,但也不太复杂。

Canvas Zoom是MIT许可的,所以你可以用它做任何你喜欢的事情。

祝你项目顺利。