在嵌入 UIScrollView 的 UIImageView 中加载 20MB png

发布于 2024-10-01 16:08:22 字数 251 浏览 5 评论 0原文

我有一个大的 png 图像,我需要缩放和移动。 因此,我创建了一个 UIScrollView 并嵌入了一个 UIImageView。

该应用程序在模拟器中运行良好,但在设备(8GB iPod Touch)上运行时,一旦加载视图就会崩溃。

我尝试使用较小的测试图像 (4MB) 工作正常,但怀疑 iPod 无法处理 20MB PNG。我还尝试了其他不同的格式,例如 JPG(以各种保存模式),但这也没有帮助。

有什么线索我可以解决这个问题吗?

I have a large png Image that I need to Zoom&Move.
I therefore created a UIScrollView and embedded a UIImageView.

The App works fine in the simulator, but when running it on the device (8GB iPod Touch) it crashes as soon as the view is loaded.

I tried with a smaller test Image (4MB) works fine and suspect the iPod can't handle a 20MB PNG. I also tried different other formats, such as JPG (in various save patterns), but that did't help either.

Any clues how I can solve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

哭了丶谁疼 2024-10-08 16:08:22

哎呀,20M 是一个很大的图像。我想到的第一个想法是你能把图像切成小块吗?即,不是一张图像而是一大堆小图像,它们一起构成了更大的图像。然后您可以按需加载,就像谷歌地图下载图像方块一样。

Ouch, 20M is a large image. The first thought that comes to mind is can you dice up the image? I.e. instead of one image have a whole bunch of small images which together make up the larger image. Then you can load on demand the same way google maps downloads image squares.

万劫不复 2024-10-08 16:08:22

查看 Apple 的 ScrollViewSuite 示例。听起来和你想做的一模一样。

3_Tiling 演示:

  • 如何子类化 UIScrollView 以添加内容平铺
  • 重复使用图块来优化性能和内存使用
  • 根据缩放更改内容的分辨率

have a look at the ScrollViewSuite Example from apple. Sounds exactly like what you are trying to do.

3_Tiling demonstrates:

  • How to subclass UIScrollView to add content tiling
  • Reusing tiles to optimize performance and memory use
  • Changing the resolution of the content in response to zooming
得不到的就毁灭 2024-10-08 16:08:22

我建议使用示例 Photoscroller。它演示了 CATiledLayer,您可以使用它来平铺图像,甚至使用较小的图像作为细节图像。它比完整的 ScrollViewSuite 示例小得多,但拥有完成您想做的事情所需的一切。它只包含 2 个类,您只需稍加编辑就可以在项目中使用它们。

您可能需要查看 WWDC 2010 会议 #104“使用滚动视图设计应用程序” ...他们处理并解释了这个例子。

您需要平铺图像。我建议使用 imagemagick :)

I suggest the Example Photoscroller. It demonstrates CATiledLayer which you can use to tile your image and even use smaller images as lod images. It's much smaller then the complete ScrollViewSuite example but has everything you need to do what you want. It contains only 2 classes which you should be able to use in your project with minor edits.

You might want to check the WWDC 2010 Session #104 "Desinging Apps with Scroll Views"... they handle and explain that example.

You will need to tile your image. I suggest imagemagick for that :)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文