读书人

有什么办法在Bitmap上画一段文字中间

发布时间: 2012-03-14 12:01:12 作者: rapoo

有什么办法在Bitmap上画一段文字,中间使用多种颜色及字形
TextOut
DrawText
都不能设置在一段文字中的某几个字符颜色或效果,
也考虑过TextOut几个字符后更改画刷再TextOut,
但字间距、换行之类的实在太难控制,
有什么API或算法能做到?


[解决办法]
使用GDI+就可以了吧
[解决办法]
朋友们有人知道那个在画布中画出的文字怎么获得他的宽度和高度呢?知道的给点意见.
[解决办法]
Pen.color:=$00112233;
Pen.Font:=!@@@43 (记不清了!);
TextOut(10,10, '试 ');
Pen.color:=$00332211;
Pen.Font:=&^%^$ (记不清了!);
TextOut(20,10, '试 ');
^^^^^^^^^^^^^^^
多颜色 多字体.......................

笨方法
[解决办法]
字间距和换行的问题,你可以通过字本大小计算, 换行用行宽计算就可以
[解决办法]
设置字体间距用API SetTextJustification
行距控制可以使用Image1.Canvas.TextRect, 这样控制的比较准确。
获取字体的宽和高: Image1.Canvas.TextHeight('我'); Image1.Canvas.TextWidth('你');
其实你的要求更容易实现,不用BitBlt,直接绘制矩形就可以了。具体代码我就不写了。

读书人网 >.NET

热点推荐