请看一下代码,如何将textout输出的文字放到放到矩型的某行的中间呢?
bmp.Width:=1024;
bmp.height:=768;
bmp.Canvas.Font.Size:=64;
bmp.Canvas.Rectangle(0,0,1024,768);
bmp.canvas.Font.Name:= '宋体 ';
bmp.Canvas.TextOut(100,100, '我是中国人 ');
竖直方向的100 不用管,只是如何计算第一个100处的值,才能使’我是中国人‘在该行的中间对齐呢?注意,这里有字体大小早影响着计算结果。
[解决办法]
bmp32.Width:=1050;
bmp32.height:=750;
bmp32.PixelFormat:=pf32bit;
bmp32.canvas.Brush.Color:=clwhite;
bmp32.Canvas.Rectangle(0,0,1050,750);
bmp32.canvas.Font.Name:='黑体';
bmp32.Canvas.Font.Color:=clblue;
qm:=changefileext(sname,'');
qm:=copy(qm,pos('@',qm)+1,length(qm)-pos('@',qm));
bmp32.canvas.Font.Size:=56;
bmp32.Canvas.TextOut(525-length(qm)*42 div 2,180,qm);
bmp08.Width:=1050;
bmp08.height:=750;
bmp08.PixelFormat:=pf8bit;
bmp08.Canvas.Font.color:=clwhite;
bmp08.canvas.Brush.Color:=clblack;
bmp08.Canvas.Rectangle(0,0,1050,750);
bmp08.canvas.Font.Name:='黑体';
bmp08.canvas.Font.Size:=56;
bmp08.Canvas.TextOut(525-length(qm)*42 div 2,180,qm);