【问题标题】:iphone best practice, how to load multiple high quality imagesiphone最佳实践,如何加载多个高质量图像
【发布时间】:2011-03-16 00:08:26
【问题描述】:

我有大约 20 张高质量图像(~3840x5800 像素),我需要将它们加载到一个简单的图库类型应用程序中。用户点击一个按钮,下一张图片被加载到 UIImageView 中。

我目前使用 [UIImage imageWithContentsOfFile:] 在模拟器中加载每个图像大约需要 6 秒 :(

如果我使用 [UIImage imageNamed:],加载时间会更长,但会缓存图像,这意味着如果用户希望再次看到相同的图像,它会更快。但它可能会导致稍后所有缓存导致我的应用程序崩溃的内存问题。

我想知道加载这些的最佳做法是什么?我正在尝试尽可能地减小图像文件的大小,但我确实需要它们是用于应用目的的高质量图像(可缩放等)。

感谢您的建议

[编辑]

大家好,

感谢您的所有建议。该项目的规格发生了一些变化。现在除了显示图像外,它们首先必须放大到特定位置,当用户点击下一个时,它会缩小然后显示下一个图像。所以我不确定建议的解决方案是否合适?

【问题讨论】:

  • 如果您需要它们那么大,因为您希望它们可缩放,我建议您将它们分段并仅加载当前视图中的部分,如谷歌地图样式。像 100x100 这样的东西应该可以解决问题。
  • 感谢 NS6String,我正在做另一个项目,但下周会回到这个项目,并会查看您所说的所有内容并在此处重新发布

标签: iphone image load uiimageview


【解决方案1】:

Apple's docs 建议不要尝试加载大于 1024x1024 的单个图像。您应该考虑使用 CATiledLayer 来根据需要加载图像片段。

【讨论】:

  • 有一个很棒的 WWDC10 视频介绍如何使用它。此外,CIMGF 刚刚发表了一篇关于如何做到这一点的好帖子。 cimgf.com/2011/03/01/subduing-catiledlayer
  • 嗨,Anomie 和 Walter,感谢您的建议,我正在做另一个项目,但下周会回到这个项目,并会查看您所说的所有内容并在此处重新发布
  • @walter - 你有 WWDC10 视频的链接吗?我好像没找到。
  • developer.apple.com/videos/wwdc/2010/index.php 并使用您的开发者帐户登录。
【解决方案2】:

您可以查看此 Apple 示例: http://developer.apple.com/library/ios/#samplecode/PhotoScroller/Introduction/Intro.html#//apple_ref/doc/uid/DTS40010080

它展示了如何加载大图像,将它们分成不同缩放级别的图块。

【讨论】:

  • 嗨,Swisstricky,我正在做另一个项目,但我会在下周回到这个项目,并会查看您所说的所有内容并在此处重新发布,感谢您的建议!跨度>
【解决方案3】:

您无法在任何给定时间看到所有这些像素,因此无需全部加载。加载低分辨率副本(“大缩略图”)以查看完整图像,然后在用户放大后选择可能具有 2 个或更多不同分辨率集的子图块。

CATiledLayer API 可能能够为您处理后者。

【讨论】:

  • 感谢 hotpaw2,我正在做另一个项目,但下周会回到这个项目,并会查看您所说的所有内容并在此处重新发布
猜你喜欢
  • 1970-01-01
  • 2010-09-20
  • 2022-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-20
相关资源
最近更新 更多