您可以使用GetGlyphOutline函数从TrueType字体中检索字形的轮廓。GetGlyphOutline函数返回的字形大纲是用于网格拟合的字形。(一个网格匹配的字形已被修改,使其位图图像尽可能接近于原始设计的字形。)如果您的应用程序需要未修改的字形大纲,请请求一个字符的字形大纲,字体大小为等于字体的单位。(要创建具有此大小的字体,请将LOGFONT结构的lfHeight成员设置为NEWTEXTMETRIC结构ntmSizeEM成员的值。
GetGlyphOutline将轮廓作为位图或一系列折线和样条返回。当一个应用程序检索一个字形轮廓作为一系列折线和样条时,信息将返回TTPOLYGONHEADER结构,然后根据需要提供很多TTPOLYCURVE结构来描述字形。所有点都返回为POINTFX结构,并表示绝对位置,而不是相对移动。TTPOLYGONHEADER结构pfxStart成员给出的起点是轮廓开始的轮廓。后面的TTPOLYCURVE结构可以是折线记录或样条线记录。
要在Windows中渲染TrueType字符轮廓,您必须同时使用折线和样条线记录。Windows可以轻松渲染折线和样条线。每个折线和样条记录包含尽可能多的连续点,以最小化返回的记录数。
TTPOLYGONHEADER结构中给出的起点始终在字形轮廓上。指定的点用作轮廓的起点和终点。