• 字体号数与像素对应关系


    标准固定 

    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博客

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

    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.5*600/96=28.125  再*10 即281.25

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

     

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

  • 相关阅读:
    无需破解,官网安装Visual Studio 2013社区版
    数据模型设计方法概述
    【Redis】为什么这么快?
    c++ vector erase
    java项目-第87期基于ssm宠物领养系统
    函数式接口
    arcgis--创建多分辨率DEM
    数据存储——存储图像
    ssm springboot网络订餐点餐跑腿系统java 小程序025
    CSS三大特性
  • 原文地址:https://blog.csdn.net/chenhao0568/article/details/127958268