【问题标题】:UIImage resizing - how scaleFactor value derived is unclearUIImage 调整大小 - scaleFactor 值如何派生尚不清楚
【发布时间】:2015-09-22 19:48:33
【问题描述】:

这可能是一个愚蠢的问题,但我没有看到这里的数学是如何工作的。我有一张图像,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 x 1500 左右。

非常感谢!

【问题讨论】:

    标签: objective-c uiimage scale


    【解决方案1】:

    你可以在http://nshipster.com/image-resizing/找到一个grt教程

    文档说:

    解释图像数据时使用的比例因子。将比例因子指定为 1.0 会生成大小与图像基于像素的尺寸相匹配的图像。应用不同的比例因子会更改由 size 属性报告的图像大小。

    对于比例:

    如果您从名称包含@2x 修饰符的文件中加载图像, 比例设置为 2.0。您还可以指定显式比例因子 从 Core Graphics 图像初始化图像时。所有其他 假定图像的比例因子为 1.0。

    如果你乘以图像的逻辑大小(存储在大小 属性)通过此属性中的值,您可以获得 以像素为单位的图像。

    尺寸:

    在 iOS 4.0 及更高版本中,该值反映了 图像并以点为单位进行测量。在 iOS 3.x 及更早版本中,此值 始终反映以像素为单位测量的图像尺寸

    【讨论】:

    • 完美!确实写的很棒。谢谢 - 感谢您的宝贵时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-20
    • 1970-01-01
    相关资源
    最近更新 更多