iOS保存系统相册中的照片到应用沙盒中出现的问题--图片旋转90度,使用CGImageRelease造成应用崩溃

本文讲述了在iOS应用中,从系统相册选取照片保存到沙盒时遇到的图片旋转90度问题以及使用CGImageRelease导致应用崩溃的内存管理问题。通过调整保存流程,避免手动释放CGImageRef对象,解决了图片方向和程序稳定性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     最初是在程序中要用到从系统相册选取图片后保存到沙盒目录中,从系统相册得到 ALAsset 对象,进而取得ALAssetRepresentation 对象后保存到沙盒中得到一个图片路径。

  

    NSString *mediaType = [asset valueForProperty:ALAssetPropertyType];
    NSString *fileName = [[asset  defaultRepresentation] filename];
    ALAssetRepresentation *representation = [asset defaultRepresentation];



    Byte *buffer = (Byte *)malloc((unsigned long)representation.size);
    NSUInteger buffered = [representation getBytes:buffer fromOffset:0.0 length:((unsigned long)representation.size) error:nil];
    NSData *data = [NSData dataWithBytesNoCopy:buffer length:buffered freeWhenDone:YES];
    [data writeToFile:filePath atomically:NO];   // 这样就把图片数据保存到了沙盒目录,filePath是由要保存到的沙盒目录和上面的fileName拼接的路径

    将得到的图片路径filePath 在html页面中显示,若是使用 <img> 标签的话能够正常的显示图片,而换成 <div> 后,由iPhone相机拍照得到的图片就会自动

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值