【问题标题】:How to tile a 30000 x 6000 image for a 480 x 320 screen?如何为 480 x 320 的屏幕平铺 30000 x 6000 的图像?
【发布时间】:2010-04-28 01:46:23
【问题描述】:

(这与another question关于iPhone上的实现有关)

我有一张大图像,大小约为 30000 (w) x 6000 (h) 像素。你可以认为它就像一张大地图。我想我需要把它裁剪成更小的瓷砖。问题:

  • 什么是平铺策略?

要求:

  • 整个图像(虽然被裁剪)可以通过滑动向上/向下/向左/向右滚动
  • 通过两指操作放大(最大到像素到像素)缩小(缩小到屏幕适合高度)
  • 延迟加载切片的内存效率

谢谢!

【问题讨论】:

    标签: iphone image-manipulation tiles


    【解决方案1】:

    查看 Apple 的 ScrollViewSuite 示例代码的第 3 部分,了解如何执行此操作的示例。

    【讨论】:

    • 哦,我知道你在那里做了什么。好吧,我也添加了对另一个问题的答案,以帮助将来可能偶然发现它的任何人,但我认为您不需要两个问题。
    【解决方案2】:

    您可以使用类似于MIP mapping 的技术进行有效缩放。简而言之,您准备原始图像的 1/2、1/4、1/8 等尺寸的图像,并根据所需的缩放级别加载/显示它们。这将以存储空间为代价节省一些扩展计算(大约需要多 1/3 的存储空间)。

    至于平移的想法可能是在可见区域周围预加载一些图块。如果用户在特定方向上平移,则可以考虑平移速度以在该方向上预加载更多图块。

    【讨论】:

    • 对基于 30000 6000 480 320 数字的特定瓷砖切割指南(例如宽度 x 高度?要加载 可见瓷砖的瓷砖数量)有何建议?跨度>
    • 我会尝试一下,根据加载图像所需的时间以及内存的限制情况,看看有什么效果。
    • 我完全同意 Rob 的观点,您可以从 480x320 的图块开始,然后尝试 120x80 看看它是否能提高响应速度。在这种情况下,生成和使用任意大小的图块的代码会有所帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多