如何计算特定 iPhone 上的像素到点的转换?

How do I figure out pixel to point conversion on specific iPhone?

我正在尝试从我的 iOS 应用程序上传 256 x 256 图片。我已将图像的大小调整为 CGSize(width: 256, height: 256),但它被上传为 768 x 768。这是有道理的,因为在我的 iPhone X 上,1 点是 3 像素。

但这并不一致。在某些 iPhone 上,1 点是 2 个像素。

我如何知道使用 CGSize(width: 128, height: 128)CGSize(width: 86, height: 86)

您问题的直接答案是使用 UIScreenscale 属性。

但根据图像的创建方式,您可能不需要它。根据您的标签,您可能正在使用 UIGraphicsBeginImageContextWithOptions。注意它的第三个参数scale。如果您通过 0,您将获得设备的比例。但在你的情况下,你想要 1.

的比例

比例为点/像素。在 swift 5

中获取比例
let myScaleVariable = UIScreen.main.scale