0


字体号数与像素对应关系

标准固定

1 英寸=25.4 毫米

1 寸=33.3333333 毫米

1点(英美点)(PT)(磅)=0.3527毫米=1/72英寸(Office里面的点)

字体号数与像素对应关系

Word默认的图片分辨率96dpi,像素必须为整数。程序计算时尽量先算乘法再除。

八号=5磅(5pt)=(5/72)*96=6.67=6px

七号=5.5磅=(5.5/72)*96=7.3=7px

小六=6.5磅=(6.5/72)*96=8.67=8px

六号=7.5磅=(7.5/72)*96=10px

小五=9磅=(9/72)*96=12px

五号=10.5磅=(10.5/72)*96=14px

小四=12磅=(12/72)*96=16px

四号=14磅=(14/72)*96=18.67=18px

小三=15磅=(15/72)*96=20px

三号=16磅=(16/72)*96=21.3=21px

小二=18磅=(18/72)*96=24px

二号=22磅=(22/72)*96=29.3=29px

小一=24磅=(24/72)*96=32px

一号=26磅=(26/72)*96=34.67=34px

小初=36磅=(36/72)*96=48px

初号=42磅=(42/72)*96=56px

DPI(dots per inch) PPI(pixel per inch) 求一张图片在某分辨率下的实际尺寸?求计算机显示器PPI? MFC按600dpi时的实际物理尺寸打印图片_小黄人软件的博客-CSDN博客

CFont font;
    font.CreateFont(37.5, // nHeight 
        37.5, // nWidth 
        0, // nEscapement 
        0, // nOrientation 
        FW_NORMAL, // nWeight 
        FALSE, // bItalic 
        FALSE, // bUnderline 
        0, // cStrikeOut 
        ANSI_CHARSET, // nCharSet 
        OUT_DEFAULT_PRECIS, // nOutPrecision 
        CLIP_DEFAULT_PRECIS, // nClipPrecision 
        DEFAULT_QUALITY, // nQuality 
        VARIABLE_PITCH | FF_SWISS, // nPitchAndFamily 
        _T("黑体")); // lpszFac
    //font.CreatePointFont(281.25, _T("黑体")); //即4.5pt
    SelectObject(memDC, font);
    SetBkMode(memDC, TRANSPARENT);
HFONT CreateFont(
int cHeight, //字体的逻辑高度
int cWidth, //字体的逻辑宽度
int cEscapement, //指定移位向量相对X轴的偏转角度
int cOrientation, //指定字符基线相对X轴的偏转角度
int cWeight, //设置字体粗细程度
DWORD bItalic, //是否启用斜体
DWORD bUnderline, //是否启用下划线
DWORD bStrikeOut, //是否启用删除线
DWORD iCharSet, //指定字符集
DWORD iOutPrecision, //输出精度
DWORD iClipPrecision, //剪裁精度
DWORD iQuality, //输出质量
DWORD iPitchAndFamily, //字体族
LPCSTR pszFaceName //字体名
);

CreatePointFont

这个函数提供了一种简单的方法来创建指定字体类型和字体大小 。

函数原型:

  BOOL CreatePointFont(

  int nPointSize,

  LPCTSTR lpszFaceName,

  CDC* pDC = NULL

  );

nPointSize参数是磅的十倍,但是磅如何和像素点进行转化呢?
二者的关系为:
像素点数 = 96* 磅数/72
也就是说
磅数 = 像素点数 *72/96

一般打印标签文件标示的都是分辨率是96,比如4.5pt磅, 求转分辨率是600对应的磅?

先算600时的像素A=4.5*600/72

再算对应96时的磅B=A*72/96

即4.5600/96=28.125 再10 即281.25

font.CreatePointFont(281.25, _T("黑体")); //即4.5pt

我还有点不明白,如何转为最上面的像素 宽和高,但这里只有一个4.5pt,转换后也只有一个值,这是怎么计算的?还是指对角线长度?字号大小就是字体的高度?

标签: windows c++

本文转载自: https://blog.csdn.net/chenhao0568/article/details/127958268
版权归原作者 小黄人软件 所有, 如有侵权,请联系我们删除。

“字体号数与像素对应关系”的评论:

还没有评论