用ALAsset获取相册原图

最近在用ALAsset获取相册时候,ALAsset的ALAssetRepresentation只提供了全尺寸图、全屏幕图、metadata等,但是将这些转换成NSData的时候,尺寸都不精确,不是变大了就是变小了。后来一想,不如直接由ALAsset转换成NSData,再由NSData转换成UIImage,后来一试试,真的可以了,而且图片的尺寸还是原来的尺寸。下面把代码贴上

/**
 *  ALAsset 直接转换为UIImage
 *
 *  @param asset
 *
 *  @return UIImage
 */
- (UIImage *)assetToImageForALAsset:(ALAsset *)asset{
    
    UIImage *tempImg = nil;
    ALAssetRepresentation *image_representation = [asset defaultRepresentation];
    Byte *buffer = (Byte*)malloc(image_representation.size);
    NSUInteger length = [image_representation getBytes:buffer fromOffset: 0.0 length:image_representation.size error:nil];
    if (length != 0)  {
        NSData *adata = [[NSData alloc] initWithBytesNoCopy:buffer length:image_representation.size freeWhenDone:YES];
        tempImg = [UIImage imageWithData:adata];
    }
    return tempImg;
}

 

//保存成jpg,图片会小一些

    BOOL result = [UIImageJPEGRepresentation(image, 1.0) writeToFile:filePath atomically:YES];

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值