【问题标题】:local DeepZoom / MultiScaleTileSource in SilverlightSilverlight 中的本地 DeepZoom / MultiScaleTileSource
【发布时间】:2009-07-21 18:26:12
【问题描述】:

如何提供可以在本地生成图片的MultiScaleTileSource实现(即无需下载图片数据)?

这是对以下内容的跟进:跟进:stackoverflow.com/questions/432956/silverlight-make-deepzoom-to-load-tiles-from-local-source 没有得到答复。

网络上的所有样本最终都基于http://blogs.msdn.com/mikeormond/archive/2008/08/23/multiscaletilesource-demo-source-code.aspx,它专门通过在服务器上生成像素来“破解”问题。

【问题讨论】:

  • 您的问题是“在本地生成图像(即不下载图像数据)”,但您链接到的另一个问题(432956)专门关于一次/提前下载所有图像数据。你能准确地澄清你在问什么吗?您是否要 (a) 下载单个大图像,在客户端上创建图块并在 DZ 中“本地”提供它们,(b) 将 DZ 图像的每个图块预下载到客户端并在“本地”提供它们, (c) 让 DZ 正常工作,根据需要从服务器下载图块?还是别的什么??
  • CraigD,我有兴趣在本地生成所有数据——无需从/任何服务器下载。

标签: c# silverlight deepzoom


【解决方案1】:

更新:我认为完全在客户端上进行 Deep Zoom 是不可能的。 MultiScaleTileSource.GetTileLayers requires a collection of URI's,我认为你没有办法在客户端拦截它。

但是,您可以使用 Silverlight 3 的 WriteableBitmap 在客户端上生成内容。我不知道你到底想做什么,但是Jeff Prosise wrote an example which shows zooming into a Mandelbrot Set via Writeable Bitmaps,它显示了这个概念。

-----------原始答案-------------

创建自定义 MultiScaleTileSource - 从 MultiScaleTileSource 继承并覆盖 GetTileLayers 方法。

样品:

【讨论】:

  • 这并没有解决问题。在以上两个链接中,图像数据都是在服务器上生成的,问题是关于本地图像生成的。
  • Jon 的第二个回答的后续:嗨 Jon,DeepZoom 文档很差,虽然有人可能会说它不受支持,但 GetTileLayers 的原型似乎足够通用,可以允许其他来源。特别是,它返回一个 Object(s) 列表,而不是一个 Uri(s) 列表。因此,希望有其他方法可以将图像数据输入 DeepZoom。所以等待更多输入(也许有人重新编译了这部分并确定了支持哪些其他方法)。
  • 好吧,听起来目前没有(记录的)方法。关闭线程...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多