测试环境:XCode 9.2 / 模拟器 6s - iOS 11.2

         1. synchronous = YES. 同步。只返回一张图片并且deliveryMode会忽略用户设置的值,直接设为 PHImageRequestOptionsDeliveryModeHighQualityFormat。a. resizeMode: PHImageRequestOptionsResizeModeNone: 返回的是原图大小b. resizeMode: PHImageRequestOptionsResizeModeFast: 当原图是压缩图时,会使用targetSize来最优解码图片,获得的图片大小可能比targetSize大c. resizeMode: PHImageRequestOptionsResizeModeExact: 解压和Fast一样,但是返回的是指定targetSize的高质量图2. synchronous: NO. 异步。a. deliveryMode: PHImageRequestOptionsDeliveryModeOpportunistic: 会返回多张图片1). PHImageRequestOptionsResizeModeNone: 先返回低清的缩略图,再返回原图大小2). PHImageRequestOptionsResizeModeFast: 先返回低清的缩略图,再返回的图片如 1-b 一样3). PHImageRequestOptionsResizeModeExact: 先返回低清的缩略图,再返回的图片如 1-c一样b. deliveryMode: PHImageRequestOptionsDeliveryModeHighQualityFormat: 只会返回一张高清图片1). PHImageRequestOptionsResizeModeNone: 如 1-a 一样2). PHImageRequestOptionsResizeModeFast: 如 1-b 一样3). PHImageRequestOptionsResizeModeExact: 如 1-c一样c. deliveryMode: PHImageRequestOptionsDeliveryModeFastFormat: 只会返回一张图片,并且可能是低清图1). PHImageRequestOptionsResizeModeNone: 返回一张低清图2). PHImageRequestOptionsResizeModeFast: 返回一张低清图3). PHImageRequestOptionsResizeModeExact: 返回一张低清图
复制代码

上述测试结果是在 requestImageForAsset:targetSize:contentMode:options:resultHandler: 方法中的 contentMode 为 PHImageContentModeAspectFit,targetSize 是按照图片的像素大小、屏幕宽度和屏幕分辨率计算的比例所得到的。如下:

         CGFloat aspectRatio = asset.pixelWidth / (CGFloat)asset.pixelHeight;CGFloat pixelWidth = kScreenWidth * kScreenScale;CGFloat pixelHeight = pixelWidth / aspectRatio;CGSize targetSize = CGSizeMake(pixelWidth, pixelHeight);
复制代码

如果 targetSize 不是如上计算结果的比例尺寸,而是随意设置,并且 contentMode 为 PHImageContentModeAspectFill 的话,则得到的图片可能会变形。如果 contentMode 为 PHImageContentModeAspectFit 时,则会根据 targetSize、deliveryMode、resizeMode 设置的值等比缩放。

坑爹的PHImageManager和PHImageRequestOptions相关推荐

  1. unity中使用自定义shader进行光照贴图烘培无法出现透明度的坑爹问题

    最近开发中在对场景进行光照贴图烘焙时发现一个坑爹问题,在使用自定义shader的时候,shader命名中必须包含Transparent路径,否则烘焙的时候不对alpha通道进行计算,烘焙出来都是狗皮膏 ...

  2. 坑爹的微软官方文档:SQL无人值守安装

    我在部署项目的时候,需要用批处理无人值守安装SQLserver,.Net等组件. 于是查了微软官方文档,其中一项内容如下: http://msdn.microsoft.com/zh-cn/librar ...

  3. 【星榜单】盘点那些坑爹的国产手机们

    [星榜单]盘点那些坑爹的国产手机们 国产手机的那些坑爹事儿很多,中庸到基本大众脸的设计还算是有点良心的,那些奇葩的名字.所谓的高配低价低却又山寨级的做工.饥饿营销让你看得到买不到.伪小清新却又华而不实 ...

  4. Android 4.2真坑爹

    艹~~~,Android4.2真坑爹,4.1以前的方法都不能使用了. 操蛋呢... 转载于:https://www.cnblogs.com/liushuibufu/p/3253611.html

  5. 坑爹的Python陷阱(避坑指南)

    点击上方"视学算法",星标公众号 重磅干货,第一时间送达 作者:xybaby 来源:http://www.cnblogs.com/xybaby/ 我个人对陷阱的定义是这样的:代码看 ...

  6. “坑爹”排行榜:Java语言最违反常识的功能点TOP 10

    来自:互联网全栈架构 作为一门面向对象的编程语言,Java凭借其简单易用.功能强大的特点受到了广大编程爱好者的青睐,伴随着开源社区的推波助澜,Java语言更是席卷全球,势不可挡,在世界各地都有Java ...

  7. PC2日记——坑爹的第一天2014/08/28

    我不想安慰自己说今天是因为第一次将pc2用于实际的比赛经验不足而导致的今天出现种种问题,我想说的是自从我開始干后台我所做的每一件事都是第一次,所以这绝对不是让自己免去责怪的理由:我想说的是假设我今天是 ...

  8. app里使用163邮箱发送邮件,被163认为是垃圾邮件的坑爹经历!_ !

    最近有个项目,要发邮件给用户设定的邮箱报警,然后就用了163邮箱,代码是网上借来的^^,如下: package com.smartdoorbell.util;import android.os.Asy ...

  9. 妈蛋:kinMaxShow轮播图异常,WebUploader图片上传坑爹,图片被压缩了

    2019独角兽企业重金招聘Python工程师标准>>> 今天晚上在改造轮播图. 原来的代码是这样的: <div> <img src="${static}/ ...

最新文章

  1. TP id 对字符串的查找
  2. Java网络编程笔记1
  3. C#程序员经常用到的10个实用代码片段
  4. C#中对泛型List进行分组输出元素
  5. 干式真空泵原理_如何安装干式墙锚在墙壁上悬挂重物
  6. tf.train.get_checkpoint_state
  7. Drools集成SpringBootStarter
  8. ERC20合约标准详解分析
  9. 3.1 栈—栈的存储实现和运算实现
  10. 论文笔记_S2D.32-2019-TIP_HMS-Net:用于稀疏深度补全的分层多尺度稀疏不变网络
  11. Hash(MD5校验工具)
  12. Java实现坦克大战(源码全)
  13. 医疗卫生行业涉及的信息数据元属性与值域代码(数据集)
  14. 市政管理学考试复习资料
  15. 这个案例你可以直接拿去用。
  16. matlab 绘制可行域内的函数图像
  17. 从零开始做一款Unity3D游戏<三>——编写游戏机制
  18. 必备知识---TCP三次握手和四次挥手以及SSL四次握手
  19. 模拟股票涨跌功能(jquery应用4)
  20. 金融科技的下一战场:从金融普惠到技术普惠

热门文章

  1. 重磅!脑机接口突破登Nature封面,脑中“笔迹”转屏幕文字破纪录,准确率超99%...
  2. 【物理方程】物理学中最难的方程之一,你知道多少?
  3. 89页PPT揭秘:人工智能产业爆发的拐点
  4. 50大产业链全景图(高清完整版)
  5. 自动驾驶汽车测试在美惹争议,原因为何?
  6. 人工智能能否复制人脑引争论 美媒:目前AI仍存在局限性
  7. 华为云BU总裁:如何把AI从噱头变为生产力?
  8. 谷歌宣布在北京成立AI中国中心:李飞飞和李佳共同领导
  9. 【研究报告】城市云脑,智慧城市2.0产生背后的深层原因,两个重要特征是关键
  10. 壕!甲骨文创始人 8000 万美元买豪宅后打算拆掉