Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

I'm trying to upload 256 x 256 images from my iOS app. I've resized an image to CGSize(width: 256, height: 256), but it gets uploaded as 768 x 768. This makes sense, because on my iPhone X, 1 point is 3 pixels.

This isn't consistent though. On some iPhones, 1 point is 2 pixels.

How do I figure out to use CGSize(width: 128, height: 128) or CGSize(width: 86, height: 86)?

like image 414
David Avatar asked Mar 06 '23 22:03

David


2 Answers

The direct answer to your question is to use the scale property of UIScreen.

But you probably don't need that depending on how your image is created. Given your tags, it is likely you are using UIGraphicsBeginImageContextWithOptions. Note its third parameter of scale. If you pass 0 you get the device's scale. But in your case you want a scale of 1.

like image 67
rmaddy Avatar answered Mar 09 '23 12:03

rmaddy


Scale is points / pixels. Get Scale in swift 5

let myScaleVariable = UIScreen.main.scale
like image 24
Vette Avatar answered Mar 09 '23 13:03

Vette