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

将此图(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. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十二:串口模块① — 发送
  2. android init(system/core/init/init.c)分析
  3. 正常shell bash脚本文件最后一行末尾是否应该添加换行符?(应该另起一行)
  4. linux权限介绍,Linux的权限介绍
  5. 【Linux】tail: inotify cannot be used, reverting to polling: Too many open files
  6. 【ASP.NET】HTTP中的 get 和 post 请求
  7. python技巧——使用list comprehension生成素数(prime number)
  8. 天勤数据结构高分笔记二叉排序树的实现
  9. 《机器人学导论》-《计算多体动力学》两本教材角速度传递的理解
  10. 干货:1分钟了解巨量引擎准入行业和资质规范
  11. 攻防世界--logmein
  12. Integer与Int
  13. 为什么VS2019的解决方案资源管理器中的文件名和文件夹名里的下划线不显示?
  14. 除了VR 还有什么能在2016年撬动物联网?
  15. Mat—基础图像容器(OpenCV教程)
  16. 推荐一款非常好用的效率APP
  17. 计算机编程辅导班,昆明少儿计算机编程辅导班
  18. 为什么换了固态硬盘电脑会快?详解硬盘与内存的关系
  19. 【凸优化】关于 KKT 条件 及其最优性
  20. 【云和恩墨大讲堂】赴春天第一场约会,深圳等你

热门文章

  1. linux---设置环境变量
  2. 【部署LVS-DR 群集】
  3. 计算机二级为什么靠Java的少,计算机二级考试:Java语言学习六大要点
  4. 关于Google Play、AdSense、Admob收款到国内企业/个人账户解答
  5. 单片机设置1s小灯闪烁(是精确的1s)
  6. 蓝桥杯国赛之四阶幻方
  7. 【ROS】ros抽取图像帧
  8. linux重装系统u盘启动不了怎么办,u盘装linux开机无法启动的解决方案
  9. LeetCode322.零钱兑换(一)
  10. 《机器学习》课后习题3.3 对率回归编程实现