iOS处理系统相册裁剪后图片
2016-10-26 18:15
357 查看
在系统应用里面的“照片”中,可以编辑图片选择裁剪或旋转角度。这个功能可能大家用得很少,所以在处理照片时没有遇到什么问题。今天发现经过系统工具裁剪或者旋转的图片在处理上需要注意一点:
将此图(PHAsset)转成UIImage:
在调用此方法时莫名其妙发现,该方法会回调两次。还没有确认第二次回调是否是编辑之前的原始图片。
并且得到UIImage之后无法再转为NSData对象。
两个方法都将得到空值。并且报错:ImageIO: handle_error:349: zlib error
如果将此图转成NSData:
将正常回调一次。并且imageData可以正常转换UIImage
将此图(PHAsset)转成UIImage:
- (PHImageRequestID)requestImageForAsset:(PHAsset *)asset targetSize:(CGSize)targetSize contentMode:(PHImageContentMode)contentMode options:(nullable PHImageRequestOptions *)options resultHandler:(void (^)(UIImage *__nullable result, NSDictionary *__nullable info))resultHandler;
在调用此方法时莫名其妙发现,该方法会回调两次。还没有确认第二次回调是否是编辑之前的原始图片。
并且得到UIImage之后无法再转为NSData对象。
NSData * __nullable UIImagePNGRepresentation(UIImage * __nonnull image); NSData * __nullable UIImageJPEGRepresentation(UIImage * __nonnull image, CGFloat compressionQuality);
两个方法都将得到空值。并且报错:ImageIO: handle_error:349: zlib error
如果将此图转成NSData:
- (PHImageRequestID)requestImageDataForAsset:(PHAsset *)asset options:(nullable PHImageRequestOptions *)options resultHandler:(void(^)(NSData *__nullable imageData, NSString *__nullable dataUTI, UIImageOrientation orientation, NSDictionary *__nullable info))resultHandler;
将正常回调一次。并且imageData可以正常转换UIImage
相关文章推荐
- Android拍照及图片裁剪、调用系统相册(兼容6.0以上权限处理及7.0以上文件管理)
- iOS图片处理(一)调用系统相机和相册获取图片,给相机添加自定义覆盖物
- iOS图片处理(一)————调用系统相机和相册获取图片,给相机添加自定义覆盖物
- iOS开发之获取系统相册中的图片与视频(内带url转换)
- iOS 从相机或相册获取图片并裁剪
- android 打开默认的系统相册,或拍照选取图片,并图片裁剪;
- Android 相册图片选取+自定义裁剪方式(非系统裁剪)
- ios从系统相册中读取图片
- iOS-获取系统的相册图片
- iOS 从相机或相册获取图片并裁剪
- iOS开发之获取系统相册中的图片与视频(内带url转换)
- android实例之——调用android系统相机、系统相册,并对得到的图片进行处理
- IOS学习笔记39——拍照、从相册选图并对图片进行裁剪
- Qt for iOS:使用UIImagePickerController获取一个系统相册中的图片
- android调用系统相机和相册进行拍照裁剪处理,解决不同安卓版本存在无法加载相册的问题,处理了是否有sd卡的存在的情况
- 调用Android系统相册并裁剪图片
- android 4.4版本以上系统相册图片返回URI的不同处理
- JavaScript html js图片切割系统,裁剪,图片处理
- iOS 选取相册图片并裁剪,解决获取图片拉伸问题
- iOS 调用相机 ,相册获取图片 并裁剪为正方形