Quick question: I’ve put together some splash screens that I’d like to share, but I’m curious whether they need to be a specific size to display full screen. My files are at a 16:9 ratio, but with very low resolution. Will the Pi stretch them to fill the screen?
(I suppose I could also just wait until I get home for some trial and error…)
An image can only be displayed at the resolution the display showing it has capability of doing so. Err…yes. So if you are on a high-def 1080p tv, that tv can display up to 1920x1080px. If you throw a 720p (1280×720) image at it, it will stretch the image to fill the screen and you will get pixelation, whether it is totally noticeable or not.
If you throw a 1080p image at a 720p screen, it will crunch that image and you will only see a fraction of the original pixels. (Better explanation is that it averages pixels next to each other and decides what color to make each individual pixel.) That being said, it will look better going down than pulling up, resolution-wise.
If you want the best damn quality you can get out of it (and you should!) then you should be designing your 16:9 splash screens at 1920×1080 @ appropriate ppi. That image can be used on any 16:9 screen with excellent results.
Screen pixel density is defined by resolution and screen size. Here is a post I pulled from a different place on the interwebs around calculating your specific screen’s pixel density (ppi):
Assuming that pixels are as wide as high, you can get the ratio of width (w) and height (h) of screen. It will be 1920/1080 = 16/9.
Let w be 16x and h be 9x.
So diagonal will be (16x *16x) +(9x *9x) = 337*x*x.
40 Inch screen size means length of diagonal is 40 inch.
So 337*x*x = 40*40
x = 2.17893
w = 16*x = 34.863
h = 9*x = 19.61
Area = w*h = 883.663
Now total number of pixels = 1920 * 1080 = 2073600.
Now what we want is ppi. Ppi stands for pixels per inch.
Now we have area as 883.77 square inch
Number of pixels 2073600
pixels per inch square will be pixels divided by area in squares
Ppi = 2073600/883.77 = 3033
Pixels per inch is the square root of pixels per square inch so ppi = square root of 3033 = 55
Moral of the story here is that if you are designing for a 16:9 display that is 40″ or under, 1920×1080 @ 55ppi would be perfect resolution. Don’t want to do the math? Make your ppi higher (I usually design at print resolution (300ppi) and dowsample after.) As long as you have the pixel dimensions correct, you can shoot high on the ppi and have a scalable splash screen.