字号与像素的对应值

平常偶尔可能会碰到pxword的字号的相互转换的情况,这里从网上抄了下简单做下记录。

单位

pt (point,磅)

是一个物理长度单位,指的是 72 分之一英寸。

px (pixel,像素)

是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果 px 要换算成物理长度,需要指定精度 DPI(Dots Per Inch,每英寸像素数),在扫描打印时一般都有 DPI 可选。Windows 系统默认是 96dpi,Apple 系统默认是 72dpi。

em(相对长度单位,相对于当前对象内文本的字体尺寸)

是一个相对长度单位,最初是指字母 M 的宽度,故名 em。现指的是字符宽度的倍数,用法类似百分比,如:0.8em, 1.2em,2em 等。通常 1em=16px。

换算

  • 字号:是中文字库中特有的一种单位,以中文代号表示特定的磅值 pt,便于记忆、表述。
    pt 和 px 的换算公式可以根据 pt 的定义得出:
    px = 1/dpi(英寸)
    pt = 1/72(英寸)
    pt = px * dpi / 72
    以 Windows 下的 96dpi 来计算,1pt = px * 96/72 = px * 4/3

常用到的

直接百度

引申

dpi 计算

来自百度😺

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
function getDPI() {
let deviceXDPI = 0
let deviceYDPI = 0
if (window.screen.deviceXDPI != undefined) {
deviceXDPI = window.screen.deviceXDPI;
deviceYDPI = window.screen.deviceYDPI;
} else {
const tmpNode = document.createElement('div');
tmpNode.style.cssText = `
width:1in;
height:1in;
position:absolute;
left:0px;
top:0px;
z-index:99;
visibility:hidden;
`
document.body.appendChild(tmpNode);
deviceXDPI = parseInt(tmpNode.offsetWidth);
deviceYDPI = parseInt(tmpNode.offsetHeight);
tmpNode.parentNode.removeChild(tmpNode);
}
return [
deviceXDPI,
deviceYDPI
]
}

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!