需要在一个BMP图片上的某一行输入几个字符,并且要求这文字在某一行的正中间,该如何入手呢? ( 积分: 20 )

  • 主题发起人 主题发起人 lkdbdlkq
  • 开始时间 开始时间
L

lkdbdlkq

Unregistered / Unconfirmed
GUEST, unregistred user!
比如说一个800*600的BMP图片,需要在竖直方向200处输出五个字符,可以用如下代码,不过这样输出的结果是字符向左靠齐,如何使它们自动排列在这一行的正中间呢?

bmp.Canvas.TextOut(0,200,'中国中国中');
 
只能用TextOutRect 然后自己计算中间位置.
 
bmp.Canvas.TextOut(0, (600 - Length('中国中国中')) / 2, '中国中国中');
 
需要计算字符的个数和位置,先用Font.height得到字符的宽度,然后再根据图片的宽度减去字符的宽度*数量/2,求出位置,然后textout。
我以前用VB做自定义打印表格式就是这么做的
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部