inch英寸
英寸是使用于联合王国(UK,即英国(英联邦)及其前殖民地)的长度单位,英文简写in,1in=2.54cm,12英寸为1英尺,36英寸为1码。英寸的符号为"
pt
point,磅,是一个物理长度单位,指的是72分之一英寸
1inch = 72pt,1pt = 1/72inch
px
pixel,像素,是一个虚拟长度单位,是计算机系统的数字化图像长度单位,如果px要换算成物理长度,需要指定DPI(Dots Per Inch,每英寸像素数),在扫描打印时一般都有DPI可选。windows系统默认是96dpi,Apple系统默认是72dpi。
dpi
DPI(Dots Per Inch,每英寸像素数),在扫描打印时一般都有DPI可选。windows系统默认是96dpi,Apple系统默认是72dpi。
em
相对长度单位,相当于当前对象内文本的字体尺寸,最初是指字母M的宽度,故名em。现指的是字符宽度的倍数,用法类似百分比,如:0.8em,1.2em,2em等。通常1em=16px
字号:
是中文字库中特有的一种单位,以中文代号表示特定的磅值pt,便于记忆、表述。
TWIP
word中xml中的长度单位.
1pt=20twip
1px=15twip
1inch=1440twip
不同字体对应大小:
"初号" = 42磅 = 840缇
"小初" = 36磅 = 720
"一号" = 26磅 = 520
"小一" = 24磅 = 480
"二号" = 22磅 = 440
"小二" = 18磅 = 360
"三号" = 16磅 = 320
"小三" = 15磅 = 300
"四号" = 14磅 = 280
"小四" = 12磅 = 240
"五号" = 10.5磅 = 210
"小五" = 9磅 = 180
"六号" = 7.5磅 = 150
"小六" = 6.5磅 = 130
"七号" = 5.5磅 =110
"八号" = 5磅 = 100
emu
100mm=360emu (100mm是一毫米放大一百倍,该单位是uno层的单位)
1磅=12700emu(emu一般是形状锚点里面的单位,xml文件中如果有很大的数字,第一眼可以猜测就是emu)
换算关系
在windows下96dpi来计算,1pt=96/72px=4/3px
字号 | pt | px | em |
初号 | 42pt | 56px | 3.5em |
小初 | 36pt | 48px | 3em |
34pt | 45px | 2.75em | |
32pt | 42px | 2.55em | |
30pt | 40px | 2.45em | |
29pt | 38px | 2.35em | |
28pt | 37px | 2.3em | |
27pt | 36px | 2.25em | |
一号 | 26pt | 35px | 2.2em |
25pt | 34px | 2.125em | |
小一 | 24pt | 32px | 2em |
二号 | 22pt | 29px | 1.8em |
20pt | 26px | 1.6em | |
小二 | 18pt | 24px | 1.5em |
17pt | 23px | 1.45em | |
三号 | 16pt | 22px | 1.4em |
小三 | 15pt | 21px | 1.3em |
14.5pt | 20px | 1.25em | |
四号 | 14pt | 19px | 1.2em |
13.5pt | 18px | 1.125em | |
13pt | 17px | 1.05em | |
小四 | 12pt | 16px | 1em |
11pt | 15px | 0.95em | |
五号 | 10.5pt | 14px | 0.875em |
10pt | 13px | 0.8em | |
小五 | 9pt | 12px | 0.75em |
8pt | 11px | 0.7em | |
六号 | 7.5pt | 10px | 0.625em |
7pt | 9px | 0.55em | |
小六 | 6.5pt | 8px | 0.5em |
七号 | 5.5pt | 7px | 0.4375em |
八号 | 5pt | 6px | 0.375em |
获取DPI
#include <iostream>
#include <windows.h>
#include <math.h>
using namespace std;
// 1毫米=0.039370078740157英寸
#define INCH 0.03937
float GetDPI()
{
HDC hdcScreen;
hdcScreen = CreateDC(L"DISPLAY", NULL, NULL, NULL);
int iX = GetDeviceCaps(hdcScreen, HORZRES); // pixel
int iY = GetDeviceCaps(hdcScreen, VERTRES); // pixel
int iPhsX = GetDeviceCaps(hdcScreen, HORZSIZE); // mm
int iPhsY = GetDeviceCaps(hdcScreen, VERTSIZE); // mm
if (NULL != hdcScreen)
{
DeleteDC(hdcScreen);
}
float iTemp = iPhsX * iPhsX + iPhsY * iPhsY;
float fInch = sqrt(iTemp) * INCH;
iTemp = iX * iX + iY * iY;
float fPixel = sqrt(iTemp);
float iDPI = fPixel / fInch; // dpi pixel/inch
cout << "DPI:" << iDPI << endl;
return iDPI;
}
int main()
{
GetDPI();
system("pause");
return 0;
}