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

获取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;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值