procedure TxtToPic(TxtStr:TStrings);
var Pic:Tpicture;
i,ph,ph1,LineHeight:Integer; st:string;
begin
Pic:=TPicture.Create;
Pic.Bitmap.Canvas.Font.Assign(tempmemo.font); ph:=0; //picture height=ph
LineHeight:=5-TempMemo.Font.Height;
ph1:=TxtStr.Lines.count*LineHeight;
Pic.bitmap.Width:=600;
pic.bitmap.Height:=ph1;//图像高PH1是我根据字符串TXTSTR的行数乘以行高来决定
for i:=0 to TxtStr.lines.Count-1 do
begin
pic.Bitmap.canvas.TextOut(0,ph,TempMemo.lines[i]);
ph:=ph+LineHeight;
end;
pic.SaveToFile('TempPic.bmp');
pic.Free;
end; 以上是我的文字转化为图像的程序片断,程序运行可以通过,也能得到正确的图像,可是当我的文字行数太多,图像的高度在13000-14000以下时,可以获得正确的图像,一旦超过某个值后(该值在13000-14000之间),就会出现“参数错误”的提示,请问各位网友,Tpicture对象的高度没听说有限制呀,即使有限制,也应为16535之类的限制呀,可是为什么我在13000-14000间就通不过了呢?
大家讨论一下,这究竟是怎么回事,会不会是其它原因造成的呢
var Pic:Tpicture;
i,ph,ph1,LineHeight:Integer; st:string;
begin
Pic:=TPicture.Create;
Pic.Bitmap.Canvas.Font.Assign(tempmemo.font); ph:=0; //picture height=ph
LineHeight:=5-TempMemo.Font.Height;
ph1:=TxtStr.Lines.count*LineHeight;
Pic.bitmap.Width:=600;
pic.bitmap.Height:=ph1;//图像高PH1是我根据字符串TXTSTR的行数乘以行高来决定
for i:=0 to TxtStr.lines.Count-1 do
begin
pic.Bitmap.canvas.TextOut(0,ph,TempMemo.lines[i]);
ph:=ph+LineHeight;
end;
pic.SaveToFile('TempPic.bmp');
pic.Free;
end; 以上是我的文字转化为图像的程序片断,程序运行可以通过,也能得到正确的图像,可是当我的文字行数太多,图像的高度在13000-14000以下时,可以获得正确的图像,一旦超过某个值后(该值在13000-14000之间),就会出现“参数错误”的提示,请问各位网友,Tpicture对象的高度没听说有限制呀,即使有限制,也应为16535之类的限制呀,可是为什么我在13000-14000间就通不过了呢?
大家讨论一下,这究竟是怎么回事,会不会是其它原因造成的呢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货