如何把一MEMO上的文字转化成若干张bmp图片.!(50分)

  • 主题发起人 主题发起人 Jj1985
  • 开始时间 开始时间
J

Jj1985

Unregistered / Unconfirmed
GUEST, unregistred user!
假如这MEMO有8行.那么前面四行转成001.bmp 5-8行转成002.bmp.
memo 大小已经固定.! 图片就是截取 memo!
 
procedure printmemostr(PrintStr:string;TempBmpFile:string; MW,MH:DWORD);
var
M_Bmp:TBitmap;
begin
M_Bmp:=TBitmap.Create;
try
M_Bmp.Width:=MW;
M_Bmp.Height:=MH;
M_Bmp.PixelFormat:=pf24bit;
M_Bmp.Canvas.textout(1,1,PrintStr);
M_Bmp.savetofile(TempBmpFile);
finally
M_Bmp.free;
end;
end;
这个过程是随手写的,你再修改一下!放到你的程序中循环一下就OK了!
 
var
bmp:tbitmap;
p:tpoint;
r:trect;
txth,x:integer;
begin

p:=memo1.ClientToParent(point(2,2),self);
r.Left:=p.X;
r.Top:=p.Y;
r.Right:=p.X+memo1.ClientWidth;
r.Bottom:=p.Y+memo1.ClientHeight;

txth:=self.canvas.TextHeight('aa');

{下面是输出图像}
bmp:=tbitmap.Create;
bmp.Width:=memo1.ClientWidth;
bmp.Height:=txth*4;
x:=r.Top+bmp.Height;
bmp.Canvas.CopyRect(rect(0,0,bmp.Width,bmp.Height),self.canvas,rect(r.Left,r.Top,r.Right,x));
self.canvas.Draw(550,50,bmp);

bmp.Canvas.CopyRect(rect(0,0,bmp.Width,bmp.Height),self.canvas,rect(r.Left,x,r.Right,x+bmp.Height));
self.canvas.Draw(550,60+bmp.Height,bmp);
bmp.Free;
end;
 
后退
顶部