The size of an Image doesn’t change if you adjust the PPI.
Maybe I’m wrong (please correct me) but here is my attempt to explain.
DPI = Dots Per Inch is used for printers. The amount of Dots it is able to print per Inch.
PPI = Pixels Per Inch. the amount of Pixels a Screen is able to show per Inch
Points = Often used here on the board when talking about Pixels. Not sure how it’s related because I thought that was for Fonts.
Imagine your Image as a rubber band.
Take a rubber band and draw 10 lines on it within an Inch. Now if you stretch it twice the size, you have the same number of lines but it’s 5 lines per inch.
If you squeeze it together half the size it’s 20 lines per inch.
So you can change the Lines Per Inch as much as you want but the rubber band itself stays the same.
An Image has a number of Pixels.
It also has Metadata that contains the output size. This Metadata is just some additional information and one part of this is the PPI.
This PPI tells you how to draw the Image in the correct (intended) size.
So if an Image is 1000*1000 and the Metadata says that the PPI should be 500, it must be drawn with a width of 500 Pixels per inch.
By default, Images are set to 72 Pixels Per Inch because a long time ago, when Apple’s Printer could only print 72 DPI, it was easier to make the Monitor and everything else 72 PPI as well. (Microsoft went with 96. Not sure why but doesn’t matter)
Nowadays, Monitors display higher amounts of Pixels per Inch but the OS handles the math for you. So if everything works correctly, the above 1000*1000 @ 500 PPI Image should be 2 inch on your Monitor if you measure it with a ruler.
Now if you take this same 10001000 image and open in with Preview. Then go to Tools->Change Size and set the PPI to 250 you’ve changed the Metadata. The Image itself didn’t change. Just the Metadata.
If you display this 10001000 Image again, it will now be 4 Inch wide. (250 Pixels per Inch instead of 500)
So the Metadata is nothing more than some additional information. You can set it to 72 PPI, 150 PPI or 100000 PPI but that’s just the Metadata. The Image itself stays the same.
What you do with this PPI information is up to you. Either let Xojo handle things for you or override/ignore it.
As for Non-Retina vs Retina. Assume you have a 72 PPI Image.
Retina shows twice the amount of Pixels per Inch vs Non-Retina.
This means that when you display the same image with the same PPI on Retina, it will display half the size.
So you can either resize the Image for Retina so that it has twice the amount of Pixels OR use the same Image and adjust the Metadata by setting its PPI to 144.
(Now I’m not into web design anymore but up until 5 years (or so) ago, browsers ignored PPI settings. Highly confusing but multiple 100*100 Images with different PPI settings all showed the same size. So if that’s still the case, please don’t use that as an example.)