如何添加图片框并在图片中插入文字?

Can*_*pus 5 delphi text image frame

这就是我需要的:为Facebook页面更快地制作有趣海报的程序.海报有文字,图片和框架(白线和黑色背景).在这种情况下,我想在海报上插入徽标(png图像).

根据图片尺寸,框架的尺寸(在这种情况下,由两种形状组成)必须自动调整图片大小.

在此输入图像描述

如何从链接(2个形状组件,2个图像组件,2个标签)中保存该图像的海报作为图片?

怎么做到这一点?使用什么,从哪里开始?

我希望这个问题不会被删除.

iPa*_*h ツ 9

如果您将所有框架,形状和图片放在新的TPanel(我的样本中名为MainPanel)中,那么您可以使用:

procedure savePanelAsImage(fpPanel: tPanel; fpFileName: string);
var
   img: TBitmap;
begin
   img := TBitmap.Create;
   try
     img.Width := fpPanel.Width;
     img.Height := fpPanel.Height;
     fpPanel.PaintTo(img.Canvas, 0, 0);
     img.SaveToFile(fpFileName);
   finally
     img.Free;
   end
end;
Run Code Online (Sandbox Code Playgroud)

用法:

savePanelAsImage(MainPanel, 'd:\someFolder\image001.bmp');
Run Code Online (Sandbox Code Playgroud)

笔记:

  • 这是基于VCL的样本;
  • 要以其他格式(而不是BMP)保存图像,请使用:TPngImage(Vcl.Imaging.pngImage)或TJPEGImage(Vcl.Imaging.jpeg);
  • 如果你使用FireMonkey(> = Delphi XE2),你可以利用someParentComponent.MakeScreenShot();
  • 生成的图像将与tPanel具有相同的大小.

为了获得更好的结果/灵活性,我建议为Delphi 使用Graphics32库(它支持图层,图像重新调整大小等).

示例表格

得到的图像