[TTF字体]获取TTF字体的点阵信息

news/2025/3/15 11:25:04/

获取TTF字体的点阵信息还是使用GetGlyphOutline

看代码

	CClientDC dc(this);HDC hDC = dc.GetSafeHdc();//创建字体CFont font;VERIFY(font.CreateFont(32, 0, 0, 0, FW_NORMAL, FALSE, FALSE, 0, ANSI_CHARSET,OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH | FF_SWISS, "宋体"));CFont *pOldFont = dc.SelectObject(&font);// 定义并初始化变换矩阵MAT2 mat2;										memset(&mat2, 0, sizeof(mat2));mat2.eM11.value = 1;mat2.eM22.value = -1;			// 我这里写-1, 字体会倒置, 结合BMP的格式GLYPHMETRICS metrics;		// 保存字符相关信息DWORD dwDataSize = 0;		// 初始化字符数据缓冲区大小//……// 通过函数GetGlyphOutline()确定存储字符结构的空间wchar_t nChar = L'我';::TextOut(dc.m_hDC, 0, 0, "我", 2);dwDataSize = ::GetGlyphOutlineW(dc.m_hDC, (UINT)nChar, GGO_BITMAP, &metrics, 0, NULL, &mat2);if ((dwDataSize != 0) && (dwDataSize != GDI_ERROR)){CMYBitmap myBitmap;myBitmap.Create(1, metrics.gmBlackBoxX, metrics.gmBlackBoxY, true);dwDataSize = ::GetGlyphOutlineW(dc.m_hDC, (UINT)nChar,GGO_BITMAP,&metrics, myBitmap.m_lBITMAPDATALen, myBitmap.m_pBITMAPDATA, &mat2);char chTemp[MAX_PATH];sprintf(chTemp, "E:\\我.bmp");CMYBitmapReader::SaveBitmap(chTemp, myBitmap);}

点阵数据就是BMP格式的数据构建好BMP相关的信息头后即可显示在DC或者保存在BMP文件中

GGO_BITMAP 1位位图

其他的你可以使用8位位图保存但注意颜色表的构建.


那些LED显示条一个字有16*1632*32点 等等.

记得以前做过一个程序输入文字把该文字的转成对应点阵格式. 对于16*16或者32*32的点阵屏使用TTF字体的数据提取并不是最好的因为提取出来的文字特别是中文点阵的范围不是很固定(例如你设置字体高度是32, 但提取出来的点阵信息并不一定是32*32有些29, 有些31等等).

16*16或者32*32点阵屏可以找DOS系统中的点阵文件来提取如果大于32*32就可以考虑使用TTF来提取但是要做一些处理来对齐文字的显示.




http://www.ppmy.cn/news/732603.html

相关文章

C# 提取字体点阵字模数据

MCU 项目的 GUI 需要显示文字,没找到合适的,于是 , 用 Visual C# 2008 写了一个字模提取程序。 目前能导出数据,但还没来得及测试数据正确性。 项目托管地址:https://github.com/memstone/mosFontTool 截图&#x…

中文字体点阵打印

根据对汉字使用频率的研究,可把汉字分成高频字(约100 个),常用字(约3000 个),次常用字(约4000 个),罕见字(约8000 个)和死字(约45000 个),即正常使用的汉字达15000 个。我国1981 年公布了《通讯用汉字字符集(基本集)及…

点阵字库与矢量字库

目录 预备知识字库字模位图(bmp--bit map)叠加显示 点阵字库占用空间存储方式 矢量字库存储显示 作为音视频OSD的知识基础 预备知识 字库 上图截取了GB2312字库的一部分。 这整个二维数组就是字库,每一行就是一个字符 字模 拿出单独一行&…

LCD显示点阵字库

ASCLL用一个字节表示,最高位是奇偶校验位或空闲,检验传输中是否出现错误,奇校验:一个字节的1的总数是奇数个,若非奇数最高位b7补1,偶数校验同理 ASFII7X5,8X6,16X8,行X列 7X5:字节0-…

Android仿京东、天猫商品详情页

前言 前面在介绍控件TabLayout控件和CoordinatorLayout使用的时候说了下实现京东、天猫详情页面的效果,今天要说的是优化版,是我们线上实现的效果,首先看一下效果: 项目结构分析 首先我们来分析一下要实现上面的效果&#xf…

点阵字体(也叫位图字体或光栅字体)、矢量字体

摘自百度文库 http://blog.csdn.net/chy555chy/article/details/51888839 点阵字体 点阵字体是把每一个 字符都分成1616或2424个点,然后用每个点的虚实来表示字符的轮廓。点阵字体也叫 位图字体,其中每个字形都以一组 二维像素信息表示。 中文名 点阵字…

点阵字体的旋转

最近由于工作原因一直在编写热敏打印应用相关的代码,其中就涉及到中文打印。对于中文打印大概涉及三个方面的内容:中文输入、汉字编码与转码、点阵字体的处理。对于这三个方面涉及的知识还是挺多的,在此就对点阵字体相关的内容做一个小结。 …

点阵字和字模

前不久,在网上看到一个生成点阵字的网站。觉得很有意思! 到底什么是点阵字,点阵字和字模之间有什么关系? 让我们先看一个点阵汉字和一个英文字母:             **     *********************…