在系统应用里面的“照片”中,可以编辑图片选择裁剪或旋转角度。这个功能可能大家用得很少,所以在处理照片时没有遇到什么问题。今天发现经过系统工具裁剪或者旋转的图片在处理上需要注意一点:

将此图(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

iOS处理系统相册裁剪后图片相关推荐

  1. 从相册获取图片,并获取裁剪后图片(系统自带)

    2019独角兽企业重金招聘Python工程师标准>>> /*此处info 有六个值* UIImagePickerControllerMediaType; // an NSString ...

  2. iOS——调用系统相册和相机

    iOS--调用系统相册和相机 背景 我们在许多app里可以发现在换头像的时候一般有两个选择,一个是选择本地照片,一个选择是相机也就是直接拍一张照片当头像,另外还有就是可以去修改照片尺寸,所以我们就要知 ...

  3. iOS 获取系统相册

    在iOS开发中经常会用到相册的图片,但是原生的UIImagePikerViewDelegate只能选取一张照片进行处理,这样管理起来比较麻烦,所以本次带来获取系统所有相册. 首先建一个继承NSObje ...

  4. android 图片自动裁剪图片大小,android调用原生图片裁剪后图片尺寸缩放的解决方法...

    在安卓开发中,如果对拍照后的图片进行图片裁剪,如果是调用系统的裁剪,如下: /* * 裁剪图片 */ private void cropPhoto() { Intent intent = new In ...

  5. android 照片多选,Android: 关于系统相册多选图片的问题

    最近在做毕设,想在调用系统相册的时候直接返回多张图片的地址.我本意是想用尽量简单的方法来解决这个问题,不需要剪裁啊什么的功能,只要可以多选就好.可是百度搜出来的方案基本上全部是自己写一个相册或者调用第 ...

  6. ios 模仿系统相册 预览

    系统相册的视频和图片 左滑动 和右边滑动都是可以看下一张图片的 然后有视频还能够播放视频 考虑到图片很多 需要使用复用 所以采用 collectionview 来实现 让cell 和屏幕的大小相等 c ...

  7. cropper裁剪后图片大小变大等问题

    最近根据需求做了一个图片裁剪的功能,于是在Git上找了cropper这个插件,具体api网上有很多资料,大家感兴趣的可以自行查找,这次主要记录下我遇到的问题. 图片裁剪完成后cropper有个方法可以 ...

  8. iOS 调用系统相册拍照时显示英文问题

    在调用系统相册拍照的时候,在选择照片的时候,发现用的都是英文,效果如下: 我们想把那个Retake 和Use Photo 改为对应的汉字,先来一种最笨的方法,最后在来个高级的方法,最笨的办法当然是我们 ...

  9. iOS调用系统相册显示英文标题

    调用系统相册.相机,发现是英文的标题"photos",但是手机语言已经设置显示中文,解决办法: 在info.plist里面添加Localized resources can be ...

最新文章

  1. 1.Spring Security 详细简绍与入门
  2. SynchronizedMap和ConcurrentHashMap的深入分析
  3. 如何为MySQL选择更合适的数据类型
  4. Customer Report这个Fiori应用必须和CRM耦合在一起么
  5. java中怎么判断相等_Java中判断相等 (== 与 .equals())
  6. 在传统企业做互联网架构是什么感受?
  7. python编程是啥-什么是少儿Python编程?这一篇就够啦!
  8. python中的超类_Python中的抽象超类
  9. Zabbix 3.4.2 install Configuration
  10. 单片机12864c语言,51单片机+带字库液晶12864+DS1302数字时钟C源程序
  11. 记测试工具iozone,iometer,bonnie++
  12. 由于找不到mfc100.dll,无法继续执行代码
  13. php使用cookie获取浏览记录,php使用cookie存库浏览记录详解
  14. R(13):第三章:3.2数据的分布
  15. 万豪国际集团公布新任首席执行官和总裁
  16. 如何检查计算机上安装的DirectX版本?
  17. Linux 中的 EOF 到底是什么?
  18. (LeetCode C++)跳跃游戏
  19. 计算机怎么消除用户密码,电脑开机设置了密码要怎么删除
  20. 搭建股票数据api接口过程中会遇到什么问题?

热门文章

  1. SEO人员,如何创建新闻源级别的文章?
  2. 【笔试题目整理】小红书2019年校园招聘数据分析岗位在线笔试第二批
  3. 如何用记事本编写Hello World
  4. [人工智能-深度学习-24]:卷积神经网络CNN - CS231n解读 - 卷积神经网络基本层级
  5. 列举php中常见的魔术方法,PHP 中常用的 9 个魔术方法
  6. 洛谷P4107 [HEOI2015]兔子与樱花
  7. JVM内存与垃圾回收篇——类加载子系统
  8. 整理收集46个常用区块链术语,菜鸟必看!
  9. 工行里的数字员工是怎么来的?
  10. 【IC萌新虚拟项目】ppu模块的编译环境搭建与RTL编译