7

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)?

David
  • 7,028
  • 10
  • 48
  • 95
  • Show your code for creating the image. Are you using `UIGraphicsBeginImageContextWithOptions`? Look at the documentation for its parameters. – rmaddy Feb 12 '18 at 00:06

2 Answers2

9

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.

rmaddy
  • 314,917
  • 42
  • 532
  • 579
6

Scale is points / pixels. Get Scale in swift 5

let myScaleVariable = UIScreen.main.scale
Vette
  • 511
  • 5
  • 10