更新时间:2015-11-30 21:54:42浏览次数:1+次
处理方法的功能。这两个函数的调用格式如下:
TextRenderingHint GetTextRenderingHint(void) const;
Status SetTextRenderingHint(TextRenderingHint newMode);
参数newMode指明了需要采用的边缘处理方法,其值是由枚举TextRenderingHint列出的下列成员之一:
enum TextRenderingHint{
TextRenderingHintSystemDefault,
TextRenderingHintSingBitPerPixelGridFit,
TextRenderingHintSingBitPerPixel,
TextRenderingHIntAntiAliasGridFit,
TextRenderingHintAntiAlias,
TextRenderingHintClearTypeGridFit
};
新建GDI+程序项目,这是一个单文档项目,在菜单中新建一个菜单项“字体边缘处理”,在这个菜单项下新建一个子菜单项“字体轮廓设置”,并建立消息响应:
void CTextRanderingView::OnTextrenderhint()
{
// TODO: 在此添加命令处理程序代码
Graphics graphics(this->m_hWnd);
this->RedrawWindow();
FontFamily fontfamily(L"Arial");
Gdiplus::Font font(&fontfamily, 60, FontStyleRegular, UnitPixel);
int RenderingHint[] = {
TextRenderingHintSystemDefault,//////使用与系统相同的处理方式
TextRenderingHintSingleBitPerPixelGridFit,//////不消除锯齿,使用网格匹配
TextRenderingHintSingleBitPerPixel,//////不消除锯齿,不使用网格匹配
TextRenderingHintAntiAliasGridFit,//////消除锯齿,使用网格匹配
TextRenderingHintAntiAlias,////////消除锯齿,不使用网格匹配
TextRenderingHintClearTypeGridFit///////在液晶显示器上是使用cleartype技术增强字体清晰度
};
////////使用不同的边缘处理方式输出6行文本
for (int i = 0; i<6; i++)
{
/////设置边缘处理方式
graphics.SetTextRenderingHint((TextRenderingHint)RenderingHint[i]);
/////输出文本
graphics.DrawString(L"Render", -1, &font, PointF(0, 0), &SolidBrush(Color(255, 0, 0, 0)));
/////绘图平面下移1行
graphics.TranslateTransform(0, font.GetHeight(0.0f));
int n = font.GetHeight(0.0f);
}
}
代码实现:
你用图片编辑软件放大看看后就知道效果了。试试吧!
上面的是未消除锯齿的,下面的是消除锯齿的。你会发现,最后得”r“的TextRenderingHintClearTypeGridFit处理效果最好。
cleartype是微软系统特有的图片处理技术。你可以自己查查。
相关资讯