【问题标题】:Getting a tiled image collection on the iPad (Deep Zoom)在 iPad 上获取平铺图像集(深度缩放)
【发布时间】:2011-02-19 18:06:39
【问题描述】:

我有一组通过 Microsoft 的 Deep Zoom 作曲家创建的平铺图像集,以及一个 Silverlight 应用程序,该应用程序目前通过 MultiScaleImage 使用它们进行显示 - 一切都运行良好 - 我只是想获得一些 iPad 编程经验和 对一些 iPad 应用程序有一些想法。我所有的想法都依赖于我能够显示/操作这些平铺图像集(在 iPad 上)。

我刚刚拿起了一台 iMac 来实现这一点。不过,我没有看到任何 Objective-C / Cocoa-touch 库,所以我假设我必须自己动手。 (我看到了 Seadragon Ajax 组件,它非常漂亮,但我在这里处理集合,它不支持。我也想将它作为一个原生应用程序来获得体验。)

我发现用于显示/操作平铺图像集的唯一开源项目是 Openzoom - 一个 Flash 组件。我也不熟悉 ActionScript(Python、Java、C# 和 c 是我真正使用过的唯一语言),但简要检查代码我并没有遇到任何问题,并且可能可以将其用作提示关于如何换入和换出瓷砖等。但是,由于我对 Objective-C/Cocoa-touch 还是很陌生,因此我们将不胜感激一些正确方向的指针。

1) 我还缺少其他项目吗,或者 OpenZoom 是我最好的参考吗?

2) 我应该尝试在 UIKit 框架中进行此显示,还是应该将其作为 OpenGL 显示?

3) 任何其他我不想问的建议/指针。

【问题讨论】:

  • 我在@github 上为一个项目添加了书签,以便稍后跟进(看起来像是iOS 的OpenZoom 端口),但看起来该项目已被拉取-webcache.googleusercontent.com/… 列出了谷歌缓存。跨度>

标签: iphone objective-c cocoa-touch ipad deepzoom


【解决方案1】:

我刚刚开发了一些依赖平铺大图像以实现深度缩放的应用程序。我找到了几个示例,但对我来说最好和最有用的是 Apple 的“PhotoScroller”示例代码。

它依靠 CATiledLayer 来处理平铺。结果是即使图像非常大并且不太复杂,界面也非常流畅且响应迅速。 (有点复杂但还不错)。

所以直接回答你的问题:

  1. PhotoScroller Code

  2. QuartzCore 框架(SDK 的一部分)

  3. 有一个很棒的免费 Mac 小应用程序,用于将图像分割成我经常使用的图块:“Tilen”

【讨论】:

    【解决方案2】:

    在 WWDC 2010 源码示例中,iOS 下的 ScrollView Suite 中有一个项目,名为 Tiling。它对应于 WWDC10 session 104。它可能是目前最好的图像平铺示例。

    【讨论】:

    • 平铺是一个很好的例子,但是有一些低效的代码。 “PhotoScroller”与此类似,但提供了更清洁、更流畅的体验。
    【解决方案3】:

    你可以看看 RouteMe 库是如何做到这一点的,动态加载更高分辨率的图块,平移等。https://github.com/route-me/route-me

    【讨论】:

      【解决方案4】:

      我不敢相信没有人告诉过你 UIScrollview; UIScrollView 组件就是为此目的而设计的! (想想使用它的谷歌地图)。

      查看类参考... UIScrollView

      您需要的委托方法如下......

      - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
      

      这允许您检查缩放级别、偏移等,然后提供缩放视图。通过这种方式,您可以在平铺景观中保持您的“位置”,而与用于表示它的图形无关。

      不要滚动你自己的 UIScrollView,没必要!

      【讨论】:

      • 不幸的是 UIScrollView 不能很好地缩放非常大的图像。它挂起、犹豫并经常崩溃。
      【解决方案5】:

      看看 CATiled 层。在此处查看我对类似问题的回答:Drawing in CATiledLayer with CoreGraphics CGContextDrawImage

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-06-13
        • 1970-01-01
        • 2019-06-04
        • 2011-12-18
        • 1970-01-01
        • 2012-12-22
        • 2014-03-16
        相关资源
        最近更新 更多