分辨率与像素

分辨率与像素总之 分辨率确定了屏幕上能够显示的像素数量 而像素是组成数字图像的基本单位

一 概念

分辨率:

  • 分辨率指的是图像或显示器屏幕上可见的像素数量,通常以水平像素数和垂直像素数表示。例如,一个分辨率为1920x1080的屏幕意味着在水平方向上有1920个像素,在垂直方向上有1080个像素。分辨率决定了图像或屏幕上能够显示的细节水平。

像素:

  • 像素是组成数字图像的最小单位。每个像素都代表图像中的一个点,具有特定的颜色和亮度值。在显示设备上,每个像素通常由一个小的发光或反射件表示,如液晶显示器的液晶单或电子墨水屏的微小墨滴

关系:

  • 分辨率直接决定了屏幕上能够显示的像素数量。例如,一个分辨率为1920x1080的屏幕意味着它有1920个水平像素和1080个垂直像素。这些像素的排列和组合形成了完整的图像。

像素密度(DPI):

  • 像素密度指的是在显示设备上每英寸的像素数量,通常用PPI(Pixels Per Inch,每英寸像素数)或DPI(Dots Per Inch,每英寸点数)来表示。像素密度可以通过分辨率和屏幕尺寸来计算。高分辨率和较小的屏幕尺寸意味着更高的像素密度,导致图像看起来更清晰和更细致。

总之,分辨率确定了屏幕上能够显示的像素数量,而像素是组成数字图像的基本单位。像素密度则描述了每英寸的像素数量,反映了图像在显示设备上的清晰度和细节水平。

二 示例

  • 这里使用Qt中的代码获取屏幕的DPI(也就是像素密度):
#include <QScreen> qDebug()<<QApplication::primaryScreen()->logicalDotsPerInch() 

在相同尺寸的屏幕上这个值大概率都是相同的,即使你修改的主机分辨率,因为他是物理的像素密度,也就是每英寸有多少个像素点。

  • 比如我的电脑目前设置1920*1080的分辨率时,桌面是铺满整个屏幕的,然后此时的DPI是:96
  • 当我修改分辨率后,桌面可能就不能铺满整个屏幕了,这是因为什么?
  • 因为我们的像素密度(DPI)在同一显示器下是不会变的。这个数值是硬件固定的,比如在推荐1920*1080分辨率的屏幕上使用了更低的分辨率,1400*900 那么表示宽度只显示1400个像素,高度只显示900个像素,这就会导致部分空间是黑的。

1920*1080的桌面效果:

 /* 计算逻辑每英寸点数 */ int iDPI = static_cast<int>(QApplication::primaryScreen()->logicalDotsPerInch()); /* 按照逻辑DPI来设置子不同屏幕下的自适应 */ d->m_fDpiRatio = static_cast<float>(96.0 / iDPI);

2.1 自适应问题:

  • 这时候如果是对同一个界面程序的字体(字号)或者控件大小要做自适应,我们就应该在设计界面的屏幕上拿到设计界面的DPI然后去用这个DPI除我们上面代码中动态获取的屏幕DPI,这样就能得到一个缩放比例,让对应的控件来乘这个缩放比例,基本就能完成自适应。
  • 自适应只是简单说明一下,具体的代码(C++/Qt版本)实现在另一篇博客 此处
今天的文章 分辨率与像素分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-30 16:11
下一篇 2024-12-30 16:06

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/92091.html