开发者社区> 问答> 正文

cell里面显示相册大图性能优化

如题,我要在cell里面显示相册获取到的图片。
是大图。我的方法如下:

第一种方法:

ALAssetRepresentation *rep = [asset defaultRepresentation];

                NSLog(@"图片大小%lld", rep.size);
                Byte *buffer = (Byte*)malloc(rep.size);
                NSUInteger buffered = [rep getBytes:buffer fromOffset:0.0 length:rep.size error:nil];
                NSData *imageData = [NSData dataWithBytesNoCopy:buffer length:buffered freeWhenDone:YES];//this is NSData may be what you want
                UIImage *image = [UIImage imageWithData: imageData];

第二种方法:

CGImageRef imageRef = [asset defaultRepresentation].fullResolutionImage;

                UIImage *bigImage = [UIImage imageWithCGImage:imageRef];

                cell.customImageview.image = bigImage;

每次取到图片,我都会缓存起来。尽管如此。还是因为内存上升导致闪退的情况。

如果是小图,比如[asset thumbnail]
这样就不会出现性能问题。我那样显示的应该是最原始的高清大图。内存肯定吃紧。如果能显示中等高清的图片,或许情况会好一点。

不知道如何解决了。

展开
收起
a123456678 2016-07-29 09:58:11 2030 0
2 条回答
写回答
取消 提交回答
    1. 按需加载;
    2. 不要直接使用大图,在后台绘制一次成为你需要显示的大小,即使释放大图;
    3. 不透明、去圆角、去阴影、优化层级、考虑栅格化;
    2019-07-17 20:01:32
    赞同 展开评论 打赏
  • 在一篇博客里面找到了相关解决方法:http://blog.csdn.net/apple_app/article/details/38847357

    原理就是不必加载高清图,按需加载。

    2019-07-17 20:01:32
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
QQ移送页面框架优化实践 立即下载
QQ移动页面框架优化实践 立即下载
函数计算最佳实践:快速开发一个分布式 Puppeteer 网页截图服务 立即下载