文字渲染

GDI

GDI+

GDI++

directwrite,

d3dfont

 

 

找字网:在线字体试衣间

 

          如果需要渲染较复杂的字体和格式,使用ID3DXFont接口会很方便。但是该接口是使用GDI实现的,故效率较低。

         CD3DFont类可以快速的渲染简单的字体。该类实用D3D的纹理三角形渲染文字,故速度较ID3DXFont为快。

          使用D3DXCreateText函数可以创建文字的3D网格模型。

#############################################################################

使用gdiplus。

很容易就可以把文字转成图片.

Bitmap bmp(800,600);
Graphics imgGraph(&bmp);

{
    WCHAR string[] =
    L"心不笑而容自笑,容不笑而心自乐.";
    FontFamily   fontFamily(L"楷体_GB2312");
    Font         font(&fontFamily, 100, FontStyleBold, UnitPoint);
    RectF        rectF(0, 0, 800, 600);
    SolidBrush   solidBrush(Color(255, 0, 0, 255));
    Color black(255,0,0,0);
    Color white(255,255,255,255);
    HatchBrush brush(HatchStyleHorizontal, black, white);
    Image image(L"c://95152_3.jpg");
    TextureBrush tBrush(&image);                                             ///可以使用纹理填充
    tBrush.SetTransform(&Matrix(75.0/640.0, 0.0f, 0.0f,
        75.0/480.0, 0.0f, 0.0f));       
    imgGraph.DrawString(string, -1, &font, rectF, NULL, &tBrush);
}
//
CLSID pngClsid;
GetEncoderClsid(L"image/png", &pngClsid);
bmp.Save(L"c://text.png", &pngClsid, NULL);

这样看来文字实际上就是一个矢量的aplha通道,里面位图可以随便填充.

相关文章:

带阴影文字输出的实现

用GDI+使文字轻松旋转

Visual C++实现各种文字特殊效果-开发频道-VC-天极网

带光圈文字输出的实现

从TTF字体中字模信息

///

While some effects can be implemented by setting the properties of the Brush and Pen classes, other effects require some code:

  • Shadow   To create the shadow, the text is drawn twice. The first time it is in gray and offset. The second time is in black.

  • Embossing   To create the embossing effect, the text is drawn twice. The first time it is in black and offset. The second time it is drawn in white, the current background color.

  • Block text   To get this effect, the text is drawn repeatedly in black, moving the text up and to the right each time. Then the text is drawn in the main color.

  • Shearing   When drawing, shearing means to slant an image. Text is slanted by calling the Shear method of the Transform property of the Graphicsobject.

  • Reflection   Reflecting the text requires measuring the height of the text, scaling the text, and repositioning the origin. The height returned from theMeasureString method includes some extra spacing for descenders and white space, but the text will be reflected around the baseline, which is the line which all capital letters sit on. To calculate the height above the baseline, use the GetCellAscent method. Since GetCellAscent returns a Design Metric value, it must be converted to pixels and scaled for the font size. The text is reflected using a scaling transform, but first a new origin is set to prevent the text from being drawn outside the viewable area of the form. Finally, the reflected text is drawn first, demonstrating the GraphicsState class. The only reason to draw the Reflected one first is to demonstrate the use of the GraphicsState object. Finally, the upright text is drawn.

 

 

 

///

freetype2: A Free, High-Quality, and Portable Font Engine

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值