如何获取屏幕DPI/PPI并计算A4纸在屏幕的大小

废话文学

以前的显示器分辨率大多支持到1080P,而随着科技的发展,逐渐有了更高分辨率的显示器,如2K屏,3K屏,4K屏,甚至又出现了8K屏。

DPIPPI 经常混用。因为很多行业将Dot泛指为所有的图像基本单元。多数情况下,DPI=PPI

代码获取DPI

function get_dpi() {
    for (var i = 56; i < 2000; i++) {
        if (matchMedia("(max-resolution: " + i + "dpi)").matches === true) {
            return i;
        }
    }
}

因为DPI为每英寸对角线长度内的像素点数,1英寸=25.4mm,所以DPI除以25.4就是1毫米的像素数。

1毫米像素数=DPI/25.4

我们可以计算96DPI下的A4纸页面像素大小:

宽:210mm×(96/25.4)≈794px
高:297mm×(96/25.4)≈1123px

注意计算得到的结果是向上取整的,因此,如果指定页面的高度为1123px,打印时会显示2页,即多出一个空白页。
有了毫米与像素的单位换算,以及页面的宽度、高度像素,就可以非常精确的控制打印页面样式了,实际上就是在编写一个宽794px和高1123px的页面。

注意:浏览器打印页面可以设置边距,默认情况下是有边距的,我们可以使用打印样式设置这个边距,从而将打印边距的控制权也掌握在自己手里。

/*CSS样式设置打印页面大小为A4纸,纵向打印,横向打印为landscape,margin属性指定页边距。*/
@page {
    size: A4 portrait;
    margin: 0;
}

关于DPI & PPI (以下摘自维基百科)

DPI

DPI(英语:Dots Per Inch,每英寸点数)是一个量度单位,用于点阵数字图像,意思是指每一英寸长度中,取样或可显示或输出点的数目。如:打印机输出可达300DPI的分辨率,表示打印机可以在每一平方英寸的面积中可以输出300X300=90000个输出点。
打印机所设置之分辨率的DPI值越高,印出的图像会越精细。打印机通常可以调校分辨率。例如撞针打印机,分辨率通常是6090 DPI。喷墨打印机则可达300~720 DPI。激光打印机则有600~1200 DPI
PPI(左)和 DPI(右)的比较

在这里插入图片描述
一般显示器为96 DPI,印刷所需位图的DPI数则视印刷网线数而定。一般150线印刷质量需要350 DPI的位图。而这里的D(dot)就是像素(pixel)。
因为打印机的混色方式是CMYK,所以色彩(也就是色域)表现不如屏幕的RGB色光表现来的多与鲜艳,以至于打印机的DPI应该大于显示器的PPIPixels Per Inch,像素每英寸),才能与RGB在屏幕有差不多的画质细腻表现。大部分显示器每像素每种原色都可以有256个层次,合起来则有2563种颜色,也就是256 x 256 x 256 = 16777216 色,也就是24bit的真彩色。而打印机则仅有16位色左右,因此打印机常常利用中间色或抖动等方法来制造更多颜色的效果,故此其分辨率相当重要。
除了 DPI 外,亦有建议使用DPCMdots per centimeter)。DPCMDPI都纳入了CSS3的方案内。
扫描仪的取样分辨率有时会用DPI来量度,但更好的做法是用每英寸取样数(SPI)。
鼠标的光电传感器灵敏度常用DPI来量度,但会受显示设备和操作系统分辨率设置的影响,更好的做法是用每英寸测量数(CPI)。

PPI

PPI(英语:Pixels Per Inch,每英寸像素),又被称为像素密度,是一个表示打印图像或显示器单位长度上像素数量的指数 (并非单位面积的像素量)。一般用来计量电脑显示器,电视机和手持电子设备屏幕的精细程度。通常情况下,每英寸像素值越高,屏幕能显示的图像也越精细。

电脑与手机屏幕的每英寸像素

电脑与手机屏幕的每英寸像素值取决于尺寸和分辨率,通常指的就是每英寸上的像素点数。
例如一台4:315寸显示器,分辨率为1024×768(XGA),其横向和纵向的像素密度均为85每英寸像素。同样的一台显示器,如果分辨率设置的不同,像素点数也不同。分辨率越高,每英寸像素值也越高。
一台显示器的的像素密度是由显示单元之间的点距决定的。一台显像管或LCD液晶显示器的像素密度大约是67130每英寸像素,而现在笔记本电脑的屏幕能达到200每英寸像素,个别产品甚至高达300每英寸像素。
20081月,美国高平公司发布了一款0.44英寸的SVGA显示器,其像素密度高达2272PPI,每个像素点之间的点距只有11.25微米。这款显示器未来将应用在眼部成像技术上。
全息摄影对像素密度的要求则更高,因为高密度带来的是更大的画面尺寸和更多的成像角度。最新的空间光调制器每个像素点之间的点距只有2.5微米,像素密度更是高达10,160PPI

屏幕PPI计算公式
电脑及手机

要计算显示器的每英寸像素值,首先要确定屏幕的尺寸和分辨率。
其中,
在这里插入图片描述
以屏幕尺寸为4吋的iPhone 5为例,分辨率为1136x640,像素密度为326PPI。而分辨率为1920x1080的家用21.5寸显示器,像素密度为103PPI。另外,由于屏幕的尺寸有时并不代表其实际的大小(例如苹果公司生产的21.5iMac电脑实际对角线长度为21.465寸),因此单凭尺寸算得的每英寸像素值会有一定的误差。

数字相机

数字相机用点色数来描述屏幕的精细程度,每个像素包含了红绿蓝三个点色数。
在这里插入图片描述

与电脑和手机上的显示器不同,数字相机上的屏幕通常不用像素,而是用“点色数”来计算。每一个像素包含了三个点色数,分别是原色:红色、绿色和蓝色。例如。佳能50D相机显示屏有920,000个点色数,即92万色。而通过这个数据,可以推算这块屏幕的像素为307,200个,分辨率为640×480。因为这个区别,相机显示屏的点色数和像素也常常被人混淆。

扫描仪和相机

每英寸像素值有时也会用在扫描仪和相机上,此时每英寸像素指的是单位面积上的样本数,其值等于总像素除以CCD传感器尺寸的商。
一台专业的数码单反相机,每英寸像素值只有100-620万像素/平方厘米;而一台普通卡片机的每英寸像素值可以高达2,000-7,000万像素/平方厘米。例如一台2010万像素的Sony α单反相机,每英寸像素值约为620万像素/平方厘米;而一台2040万像素的索尼DSC-HX50卡片机的每英寸像素值为7,000万像素/平方厘米。也就是说,照相机的每英寸像素值越低,单位面积CCD传感器反映的画面尺寸就越小,成像效果也越好。

基于每英寸像素值的屏幕分级

根据屏幕每英寸像素值的不同,Android系统的开发者将平板电脑和手机的屏幕分成五类:

名称显示等级每英寸像素值
LDPI低等像素密度每英寸大约120像素 (36 x 36 px)
MDPI中等像素密度每英寸大约160像素 (48 x 48 px)
HDPI高等像素密度每英寸大约240像素 (72 x 72 px)
XHDPI极高像素密度每英寸大约320像素 (96 x 96 px)
XXHDPI超高像素密度每英寸大约480像素 (144 x 144 px)

其中最后一项XHDPI往往指的是具有类似于苹果Retina显示屏显示效果的屏幕。不同等级的屏幕显示效果相差颇多,下图为iPhone 3GSiPhone 4显示效果的对比:
在这里插入图片描述

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值