Screen resolution

Pages: 12
Hey guys, been a while since I last posted.

I could be wrong myself but I have a feeling this video ( https://www.youtube.com/watch?v=_WdgtMkk_1U ) is wrong, from what I've read from multiple other sources it's not Vertical x Horizontal(Height x Width) but rather Horizontal x Vertical(Width x Height)

Citing other sources such as below

- https://medium.com/@flik185/understanding-device-resolution-for-web-design-and-development-3bb4a5183478

- https://www.viewsonic.com/library/tech/monitor-resolution-aspect-ratio/

Both allude to the the standard being width by height, so when someone says I have a 1080p monitor, they are referring to the number of vertical pixels not number of horizontal pixels.

If you( whom is reading this ) is interested in checking out the video, maybe you could confirm or correct my assertion.

Thanks :)
it depends on the context.
in window's land, its widthxheight, easily seen on a widescreen monitor (mine is 1920 x 1080 for example) -- its clearly much wider than tall.

some graphics packages or image processing libraries may expect height*width (I do not know of any, but it would not astound me to be told that some do it that way). The order is arbitrary, and also, there is no consistency in whether 0,0 is top left or bottom left. I realize you were talking about screen, not images, but there is overlap as you can often treat the screen as an image or an image as a piece of the screen, and I would expect some weirdness there. In terms of just 'get the resolution' its going to be widthxheight -- though here again it would not astound me to learn that macs or something reverse it just because windows did it the other way around (only half kidding here).
Last edited on
ah okay, so what you're saying is neither are technically wrong?

it could be width by height or vice-versa?
Last edited on
The choice of width to height was arbitrary, it could have gone the other way possibly.

Same for why a 2D array (for instance int arr[3][4];)is usually treated as row then column.
neither is conceptually wrong.
in some contexts, they will be 'wrong' if reversed... if you wrote something where the user picked the resolution in a windows program and put them backwards, some people would go up in flames.
Makes sense :) I have a question to add to that which I find quite puzzling,

smart phones generally use a 9:16 aspect ratio and videos on youtube can use 16:9

so how can a video that was uploaded to youtube be supported by both ratios? wouldn't this ruin the integrity/quality of the video(stretching or squashing it)?
Last edited on
In the video when he talks about vertical by horizontal he is talking about the number of vertical lines across the screen by the horizontal lines down the screen. It would probably been better to use columns and rows to be less confusing.
Yes, it's wrong. 1920x1080 is 1920 columns by 1080 rows. It's not wrong to cite the dimensions in a different order as long as you reorder the numbers as well. If you want to say that the first number is the vertical resolution then the resolution should accordingly be 1080x1920.
Now, if we're talking about the monitor's resolution this might not be totally wrong, since some monitors can be rotated. For example, it doesn't make much sense to talk about the "vertical resolution" of a tablet. It depends on how you hold it, right?
But if we're talking about the graphical mode's resolution it definitely does matter. You wouldn't want the system to draw windows and text on their side, would you?

PS: Also, yes, it's the Raspberry P.I. It's presumably in black and white and going to be tricked by a sexy woman into getting involved in something larger than it was expecting.
Last edited on
Regarding screen resolution....

With Windows®-based WinAPI Desktop GUI apps the x- & y-axis coordinate values varies with the app's chosen screen mapping mode.

https://docs.microsoft.com/en-us/windows/win32/gdi/mapping-modes-and-translations

A updated bit of Petzold code to illustrate:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
/*-----------------------------------------
   WHATSIZE.C -- What Size is the Window?
             (c) Charles Petzold, 1998
  -----------------------------------------*/

#define STRICT
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <tchar.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);

int WINAPI wWinMain(_In_     HINSTANCE hInstance,
                    _In_opt_ HINSTANCE hPrevInstance,
                    _In_     PWSTR     pCmdLine,
                    _In_     int       nShowCmd)
{
   UNREFERENCED_PARAMETER(hPrevInstance);
   UNREFERENCED_PARAMETER(pCmdLine);

   static WCHAR szAppName[] = L"WhatSize";
   HWND         hwnd;
   MSG          msg;
   WNDCLASS     wndclass;

   wndclass.style         = CS_HREDRAW | CS_VREDRAW;
   wndclass.lpfnWndProc   = WndProc;
   wndclass.cbClsExtra    = 0;
   wndclass.cbWndExtra    = 0;
   wndclass.hInstance     = hInstance;
   wndclass.hIcon         = (HICON)   LoadImageW(NULL, IDI_APPLICATION, IMAGE_ICON, 0, 0, LR_SHARED);
   wndclass.hCursor       = (HCURSOR) LoadImageW(NULL, IDC_ARROW, IMAGE_CURSOR, 0, 0, LR_SHARED);
   wndclass.hbrBackground = (HBRUSH)  (COLOR_WINDOW + 1);
   wndclass.lpszMenuName  = NULL;
   wndclass.lpszClassName = szAppName;

   if (!RegisterClassW(&wndclass))
   {
      MessageBoxW(NULL, L"This program requires Windows NT!", szAppName, MB_ICONERROR);
      return 0;
   }

   hwnd = CreateWindowW(szAppName, L"What Size is the Window?",
                        WS_OVERLAPPEDWINDOW,
                        CW_USEDEFAULT, CW_USEDEFAULT,
                        CW_USEDEFAULT, CW_USEDEFAULT,
                        NULL, NULL, hInstance, NULL);

   ShowWindow(hwnd, nShowCmd);
   UpdateWindow(hwnd);

   while (GetMessageW(&msg, NULL, 0, 0))
   {
      TranslateMessage(&msg);
      DispatchMessageW(&msg);
   }
   return (int) msg.wParam;
}

void Show(HWND hwnd, HDC hdc, int xText, int yText, int iMapMode, WCHAR* szMapMode)
{
   WCHAR szBuffer[60];
   RECT  rect;

   SaveDC(hdc);

   SetMapMode(hdc, iMapMode);
   GetClientRect(hwnd, &rect);
   DPtoLP(hdc, (PPOINT) &rect, 2);

   RestoreDC(hdc, -1);

   TextOutW(hdc, xText, yText, szBuffer,
            wsprintf(szBuffer, L"%-20s %7d %7d %7d %7d", szMapMode,
                     rect.left, rect.right, rect.top, rect.bottom));
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
   static WCHAR szHeading[] = L"Mapping Mode            Left   Right     Top  Bottom";
   static WCHAR szUndLine[] = L"------------            ----   -----     ---  ------";
   static int   cxChar;
   static int   cyChar;
   HDC          hdc;
   PAINTSTRUCT  ps;
   TEXTMETRIC   tm;

   switch (message)
   {
   case WM_CREATE:
      hdc = GetDC(hwnd);
      SelectObject(hdc, GetStockObject(SYSTEM_FIXED_FONT));

      GetTextMetricsW(hdc, &tm);
      cxChar = tm.tmAveCharWidth;
      cyChar = tm.tmHeight + tm.tmExternalLeading;

      ReleaseDC(hwnd, hdc);
      return 0;

   case WM_PAINT:
      hdc = BeginPaint(hwnd, &ps);
      SelectObject(hdc, GetStockObject(SYSTEM_FIXED_FONT));

      SetMapMode(hdc, MM_ANISOTROPIC);
      SetWindowExtEx(hdc, 1, 1, NULL);
      SetViewportExtEx(hdc, cxChar, cyChar, NULL);

      TextOutW(hdc, 1, 1, szHeading, lstrlen(szHeading));
      TextOutW(hdc, 1, 2, szUndLine, lstrlen(szUndLine));

      Show(hwnd, hdc, 1, 3, MM_TEXT, L"TEXT (pixels)");
      Show(hwnd, hdc, 1, 4, MM_LOMETRIC, L"LOMETRIC (.1 mm)");
      Show(hwnd, hdc, 1, 5, MM_HIMETRIC, L"HIMETRIC (.01 mm)");
      Show(hwnd, hdc, 1, 6, MM_LOENGLISH, L"LOENGLISH (.01 in)");
      Show(hwnd, hdc, 1, 7, MM_HIENGLISH, L"HIENGLISH (.001 in)");
      Show(hwnd, hdc, 1, 8, MM_TWIPS, L"TWIPS (1/1440 in)");

      EndPaint(hwnd, &ps);
      return 0;

   case WM_DESTROY:
      PostQuitMessage(0);
      return 0;
   }

   return DefWindowProcW(hwnd, message, wParam, lParam);
}

It is still commonly output as width (left -> right), then height (top -> bottom).
I get have a basic understanding on the concepts of screen resolution and aspect ratio, at it's core it's quite simple(mostly).

The more pixels = the better an image will look (if the image supports that number of pixels).

A 16:9 ratio will always be HD. A 1:1 will be a square, in addition, it will be lower quality than a 16:9 ratio. All ratios will produce different shapes.

Let's say we have two equally sized screens/displays (in dimensions) . The first one is HD(1,280 x 720) and the other is full HD (1,920 x 1,080). Clearly the full HD is going to give a better image quality(if supported) than the standard HD.

But here's where my understanding starts to get break down...

What if we had two screens but these two screens are different sizes(dimensions). The first smaller screen has 1,280 x 720 but the second larger screen is 1,920 x 1,080, both have the same PPI(pixels per inch), so is the second screen still considered Full HD??? even though the image potential quality on the larger screen will still be the same as the potential image quality on the smaller screen....

Thanks

Last edited on
A 16:9 ratio will always be HD
Is an image with a resolution of 160 by 90 "high resolution"?

so is the second screen still considered Full HD?
1080p is 1080p, so yes it's HD. I think you're overthinking this.
Last edited on
Is an image with a resolution of 160 by 90 "high resolution"?

Great point, probably not but it still has the HD aspect ratio? What size is the bare minimum for it to be categorized "HD"?

1080p is 1080p, so yes it's HD. I think you're overthinking this.


but the second display still has the same PPI as the smaller (1,280x720) screen? So in essence the larger screen is just that, larger, it's image quality isn't any better than the smaller screen so that means it wouldn't be considered full HD? And it would be HD just like the smaller screen?
I think I'm mixing up resolution and aspect ratio.

My now understanding of resolution is; resolution really just focuses on pixels,so a 1920x1080 screen can be 50” or it could even be a high end phone screen BUT obviously the pixels on a 1920x1080 screen will be bigger than it’s phone counterpart hence it will have a smaller PPI than the phone, which means the phone screen will look better and more clear up close. is this correct?

And this leads me to the question about size. Again going back to the smaller display and larger display example, this means that both the smaller and larger are both HD but the smaller display has a higher PPI and will look clearer up closer. The larger display will look just as good from a further distance, is that somewhat correct?

Now to the question, why is it that 1,280x720 is the minimum size to be considered HD? Why can't we halve that again at 640 x 360?

adam2016 wrote:
I think I'm mixing up resolution and aspect ratio.

https://clideo.com/resources/aspect-ratio-vs-resolution

why is it that 1,280x720 is the minimum size to be considered HD?

The number of vertical pixels determines HD-ness. The number of pixels determines if it is SD, HD, or UHD.

Arbitrary definitions rooted in the evolution of TV development.

Why can't we halve that again at 640 x 360?

You could, but the image wouldn't be as detailed as an image that is 720, 1080 or 2160.
And sorry about that link above being an advert for some paid app, but the commentary on aspect ratio vs. resolution is instructive.
Thanks Furry, think my understanding is a little more concise now :) The two assertions I made are correct (to the best of my knowledge)

A funny one is I noticed(from going through my display settings) is that 1360 x 768 is considered 16:9(1.78) but 1360/768 = 1.77083333333, I mean approaching 1.78 but not exactly, is this difference considered negligible?
Last edited on
Aspect ratios are always an approximation. The difference is the number of pixels being displayed.

Think back about TV screen sizes. They are measured diagonally.

Why? Because original TV tubes were rounded that were "masked off" to be "square-ish."

https://www.reference.com/world-view/tv-screens-measured-diagonally-2adb35f7e134b622

At least that's true about 'Murrican TV tubes.

Even widescreen TVs are measured diagonally. My 50" 4K UHD (2160p) is measured diagonally, and is slightly less than 50". About approx. 49.5" actually. The actual width and height of the image is, of course, less than 50".

DVD natively is 720p resolution, Blu-ray is 1080p.

Mo' pixels!
That's one nice TV, never owned a 4K but do you think the experience is greatly enhanced with that resolution?
The thing was cheap ($199) 'cuz it ain't a "smart" (ass) TV. Just a "regular" UHD with a couple of HDMI, Video and Component inputs.

Most of my viewing is DVD or Blu-ray, and streaming. A lot of the streaming content isn't more than 720p (old TV shows and movies).

The difference between 1080p and 2160p? These old eyes can't really tell.

The difference between DVD even when up-converted and Blu-ray? Yeah, that's noticeable.
That's a pretty good buy! something that's been bugging when it comes to resolution and aspect ratios is ..


Can you fit a 16:9 aspect ratio on a 4:3 display? or does that depend on the resolution?

Let's say we had a 1920x1080(16:9) video or display, could this video(or display) fit on a 1440x1080(4:3) display?? My guess would be no (unless you possibly used an algorithm that allowed this or if we cropped the display/image) because how can we map more pixels to less pixels?

but let's say we had a bigger 4:3 display at 2880x2160 (still 4:3), I'm guessing then we could fit that 1920x1080 display naturally onto the 2880x2160 screen albeit with black bars around the top and bottom. Would this be right?

Last edited on
Pages: 12