一 概念
分辨率:
- 分辨率指的是图像或显示器屏幕上可见的像素数量,通常以水平像素数和垂直像素数表示。例如,一个分辨率为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版本)实现在另一篇博客 此处
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/92091.html