最近想在FPGA上做OSD, 既在视频信号上叠加上文字信息,考虑到使用点阵字库提取的办法样式比较单一,因此选择利用Windows的TTF字库,参考了网上的一些资料,现己试验成功,主要的VC++代码分享如下:
LOGFONT lf;
CFont newfont;
lf.lfHeight = 10; //字体宽
lf.lfWidth = 10; //字体高
lf.lfUnderline = 0; //下划线
lf.lfStrikeOut = 0; //删除线
CFontDialog cf(&lf);
if(cf.DoModal() == IDOK)
{
cf.GetCurrentFont(&lf);
newfont.CreateFontIndirect(&lf);
} //选择并创建字体
CDC* pdc=this->GetDC();
CFont *poldfont=pdc->SelectObject(&newfont); //把字体选入当前的设备上下文
MAT2 mmat2={0,1,0,0,0,0,0,1}; //字符信息转换矩阵
GLYPHMETRICS glpm; //用于描述字表在字符单元的放置
DWORD nLen;
UINT chartemp;
BYTE temp;
CString str="字";