坑爹的PHImageManager和PHImageRequestOptions
测试环境: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相关推荐
- unity中使用自定义shader进行光照贴图烘培无法出现透明度的坑爹问题
最近开发中在对场景进行光照贴图烘焙时发现一个坑爹问题,在使用自定义shader的时候,shader命名中必须包含Transparent路径,否则烘焙的时候不对alpha通道进行计算,烘焙出来都是狗皮膏 ...
- 坑爹的微软官方文档:SQL无人值守安装
我在部署项目的时候,需要用批处理无人值守安装SQLserver,.Net等组件. 于是查了微软官方文档,其中一项内容如下: http://msdn.microsoft.com/zh-cn/librar ...
- 【星榜单】盘点那些坑爹的国产手机们
[星榜单]盘点那些坑爹的国产手机们 国产手机的那些坑爹事儿很多,中庸到基本大众脸的设计还算是有点良心的,那些奇葩的名字.所谓的高配低价低却又山寨级的做工.饥饿营销让你看得到买不到.伪小清新却又华而不实 ...
- Android 4.2真坑爹
艹~~~,Android4.2真坑爹,4.1以前的方法都不能使用了. 操蛋呢... 转载于:https://www.cnblogs.com/liushuibufu/p/3253611.html
- 坑爹的Python陷阱(避坑指南)
点击上方"视学算法",星标公众号 重磅干货,第一时间送达 作者:xybaby 来源:http://www.cnblogs.com/xybaby/ 我个人对陷阱的定义是这样的:代码看 ...
- “坑爹”排行榜:Java语言最违反常识的功能点TOP 10
来自:互联网全栈架构 作为一门面向对象的编程语言,Java凭借其简单易用.功能强大的特点受到了广大编程爱好者的青睐,伴随着开源社区的推波助澜,Java语言更是席卷全球,势不可挡,在世界各地都有Java ...
- PC2日记——坑爹的第一天2014/08/28
我不想安慰自己说今天是因为第一次将pc2用于实际的比赛经验不足而导致的今天出现种种问题,我想说的是自从我開始干后台我所做的每一件事都是第一次,所以这绝对不是让自己免去责怪的理由:我想说的是假设我今天是 ...
- app里使用163邮箱发送邮件,被163认为是垃圾邮件的坑爹经历!_ !
最近有个项目,要发邮件给用户设定的邮箱报警,然后就用了163邮箱,代码是网上借来的^^,如下: package com.smartdoorbell.util;import android.os.Asy ...
- 妈蛋:kinMaxShow轮播图异常,WebUploader图片上传坑爹,图片被压缩了
2019独角兽企业重金招聘Python工程师标准>>> 今天晚上在改造轮播图. 原来的代码是这样的: <div> <img src="${static}/ ...
最新文章
- TP id 对字符串的查找
- Java网络编程笔记1
- C#程序员经常用到的10个实用代码片段
- C#中对泛型List进行分组输出元素
- 干式真空泵原理_如何安装干式墙锚在墙壁上悬挂重物
- tf.train.get_checkpoint_state
- Drools集成SpringBootStarter
- ERC20合约标准详解分析
- 3.1 栈—栈的存储实现和运算实现
- 论文笔记_S2D.32-2019-TIP_HMS-Net:用于稀疏深度补全的分层多尺度稀疏不变网络
- Hash(MD5校验工具)
- Java实现坦克大战(源码全)
- 医疗卫生行业涉及的信息数据元属性与值域代码(数据集)
- 市政管理学考试复习资料
- 这个案例你可以直接拿去用。
- matlab 绘制可行域内的函数图像
- 从零开始做一款Unity3D游戏<三>——编写游戏机制
- 必备知识---TCP三次握手和四次挥手以及SSL四次握手
- 模拟股票涨跌功能(jquery应用4)
- 金融科技的下一战场:从金融普惠到技术普惠
热门文章
- 重磅!脑机接口突破登Nature封面,脑中“笔迹”转屏幕文字破纪录,准确率超99%...
- 【物理方程】物理学中最难的方程之一,你知道多少?
- 89页PPT揭秘:人工智能产业爆发的拐点
- 50大产业链全景图(高清完整版)
- 自动驾驶汽车测试在美惹争议,原因为何?
- 人工智能能否复制人脑引争论 美媒:目前AI仍存在局限性
- 华为云BU总裁:如何把AI从噱头变为生产力?
- 谷歌宣布在北京成立AI中国中心:李飞飞和李佳共同领导
- 【研究报告】城市云脑,智慧城市2.0产生背后的深层原因,两个重要特征是关键
- 壕!甲骨文创始人 8000 万美元买豪宅后打算拆掉