分辨率与像素

一 概念

分辨率:

  • 分辨率指的是图像或显示器屏幕上可见的像素数量,通常以水平像素数和垂直像素数表示。例如,一个分辨率为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版本)实现在另一篇博客 点击此处
  • 20
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值