为CATiledLayer创建平铺图像

时间:2012-08-20 09:50:09

标签: ios cocoa-touch uiscrollview uiimageview catiledlayer

我在我的应用中创建了一种“地图”。这基本上只能用imageView / scrollView查看图像。但是,图像很大。像20,000x15,000像素或其他东西。如何平铺此图像以使其适合?当应用程序单独拼贴时,它会使用太多内存,我希望在我启动的应用程序之前完成此操作,并且只包括平铺图像,而不是原始图像。 photoshop可以这样做吗? 我还没有完成对此的完整搜索,因为我不在,并在网络连接有限的iPhone上打字..

2 个答案:

答案 0 :(得分:2)

Apple有一个名为PhotoScroller的项目。它支持平移和缩放大图像。但是,它通过预先平铺图像来实现这一点 - 如果您在项目中查看,您将看到数百个不同缩放尺寸的图块。然而,该项目没有任何类型的平铺实用程序。

所以有些人所做的是创建任何人都可以用来创建这些图块的算法或代码。我支持一个开源项目PhotoScrollerNetwork,它允许人们从网络下载巨大的jpeg,平铺它们,然后像​​PhotoScroller那样显示它们,在进行研究时我找到了几个发布了平铺软件的人。

我用谷歌搜索“PhotoScroller平铺实用程序”并获得了很多点击,包括一个here on SO

答案 1 :(得分:0)

CATiledLayer是一种方法,当然,如果您可以预先平铺从互联网上下载的图像(注意要打开的连接数量)或嵌入它们(增加整体应用程序大小),这当然是最好的方法,另一个是内存映射文件系统上的图像(但是具有该res的图像可能需要大约1GB),看看这个问题它可能是一个有趣的主题SO question about low memory scenario