怎样在一个图片中加入多行可修改的字符串或者图片后,再保存为一个图片! ( 积分: 200 )

  • 主题发起人 主题发起人 猪二十三
  • 开始时间 开始时间

猪二十三

Unregistered / Unconfirmed
GUEST, unregistred user!
例如,一张名片。
名片的底层图片是有的。
1、然后再在上面加入各种名片信息,每行的字体、颜色、起始位置等都可能不一样。而且可以更改之前的信息。
2、在名片的任意一个位置加入另外一张小图片
本来用label可以实现加入文字信息,但是无法再整合成一张图片保存起来。
请高手指教有什么好的办法?
 
例如,一张名片。
名片的底层图片是有的。
1、然后再在上面加入各种名片信息,每行的字体、颜色、起始位置等都可能不一样。而且可以更改之前的信息。
2、在名片的任意一个位置加入另外一张小图片
本来用label可以实现加入文字信息,但是无法再整合成一张图片保存起来。
请高手指教有什么好的办法?
 
调入底图显示,然后操作显示控件的画布Canvas,最后savetofile
 
//调入底图后
with image1.canvas do
begin
TextOut(x,y,'姓名');
...
end;
//保存图片
 
你可以采用画布Canvas来实现这个想法的,以下是我写的代码,你看懂了肯定就会的

procedure TfrmBigamy.btPicClick(Sender: TObject);
var
Bitmap:Tbitmap;
//Ajpeg:TJPEGImage;
OldBkMode : integer;
begin
//OpenDialog.InitialDir := '';
if OpenDialog.Execute then
begin
Bitmap:=Tbitmap.Create ;
//AJpeg:=TJpegImage.Create;
Screen.Cursor := crHourGlass;
Label1.Visible := true;
try
Application.ProcessMessages;
//AJpeg.LoadFromFile(OpenDialog.FileName);
Bitmap.LoadFromFile(OpenDialog.FileName);
//Bitmap.Assign(AJpeg);
OldBkMode := SetBkMode(Bitmap.Canvas.Handle, TRANSPARENT);
Bitmap.Canvas.Font.Color :=clBlue;
Bitmap.Canvas.Font.Size :=18;
Bitmap.Canvas.Font.Name :='隶书';
Bitmap.Canvas.TextOut(10,80,'叠加文字到图片');
SetBkMode(Bitmap.Canvas.Handle, OldBkMode);
Canvas.Draw(5,30,Bitmap);
//AJpeg.Assign(Bitmap);
//AJpeg.CompressionQuality :=80; //质量
//AJpeg.Compress;
if SaveDialog.Execute then
begin
//AJpeg.SaveToFile(SaveDialog.FileName);
Bitmap.SaveToFile(SaveDialog.FileName);
end;
finally
Label1.Visible := false;
Screen.Cursor := crDefault;
//AJpeg.Free;
Bitmap.Free;
end;
end;
end;
 
接受答案了.
 

Similar threads

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