gpt4 book ai didi

iphone - Coverflow 在加载高分辨率图像时崩溃

转载 作者:行者123 更新时间:2023-12-03 15:53:58 24 4
gpt4 key购买 nike

我正在尝试使用 AsyncImageView ( https://github.com/nicklockwood/AsyncImageView ) 作为封面来实现 Coverflow ( iCarousel )。它适用于大小高达 4 MB 的图像。但是,当尝试加载大小超过 10 MB 的图像时,应用程序会崩溃。我的问题是——

1) 我可以加载大小为 10 MB 的图像而不进行平铺吗?由于图像来源来自设备相机,是否可以平铺这些图像然后加载这些图像。如果是这样,您可以分享一些关于平铺大图像的想法/代码块吗?

P.s:我尝试使用 UIImageJPEGRepresentation(image,scale) 压缩图像,虽然图像大小从 10 MB 减少到 100 KB,但是当我尝试加载压缩图像时,内存问题再次出现。 (貌似iOS在某种程度上解压了)

最佳答案

您对图像的尺寸及其在磁盘上的大小感到困惑。

在内存中,图像占用 WIDTH*HEIGHT*4 像素,因此假设您的图像为 1000x1000px,您最终使用 4Mb 内存。

UIImageJPEGRepresentation 使用压缩因子保存图像,因此您最终会在磁盘上获得较小的图像,但图像仍然具有相同的尺寸。

要解决您的问题,您需要将下载的图像缩放到适合您的封面流项目的正确尺寸。

您可以使用 ImageIO 框架执行此操作:

  • 从下载的数据创建一个 CGImageSource
  • 使用 2 个属性 kCGImageSourceCreateThumbnailFromImageIfAbsent 和 kCGImageSourceThumbnailMaxPixelSize
  • 调用 CGImageSourceCreateThumbnailAtIndex

    关于iphone - Coverflow 在加载高分辨率图像时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13706451/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com