这可能是一个愚蠢的问题,但我没看到这里的数学运算方式。我有一张图像,414w x 584h。要使用[UIImage imageWithCGImage:scaleFactor:orientation]
将图像缩小到此尺寸的一半(即初始宽度和高度的一半),我必须将scaleFactor
设置为6.0。
为什么是6.0?该值如何与414/207 = 2.0的宽度尺度或高度尺度相同,相同值584/292 = 2.0?
当我写这篇文章时,我想知道......我的应用程序是在iPhone 6+上运行的。它可能与3x Retina显示器有关吗?即,正常比例因子为2.0,这是无量纲的,但是当应用于6+上的图像时,为了获得像素,我必须做3倍?这是逻辑吗?
而且,我想,虽然我在这里,是否有更好的方法来调整图像大小,使用可用的iOS设施?例如,一些特殊的仿射变换等?对记忆或表现没有特别关注;图像都不超过1000宽,大约1500左右。
非常感谢!
答案 0 :(得分:1)
您可以在http://nshipster.com/image-resizing/
找到grt教程文档说:
解释图像数据时使用的比例因子。指定比例因子为1.0会导致图像的大小与图像的基于像素的维度相匹配。应用不同的比例因子会更改size属性报告的图像大小。
对于比例:
如果从名称中包含@ 2x修饰符的文件加载图像, 比例设定为2.0。您还可以指定显式比例因子 从Core Graphics图像初始化图像时。所有其他 假设图像的比例因子为1.0。
如果乘以图像的逻辑大小(存储在大小中) 通过此属性中的值,您可以获得维度 以像素为单位的图像。
尺寸:
在iOS 4.0及更高版本中,此值反映了该值的逻辑大小 图像并以点为单位进行测量。在iOS 3.x及更早版本中,此值 始终反映以像素为单位测量的图像尺寸