delphi - 如何添加相框并在图像中插入文字?

标签 delphi text frame image

这就是我需要的:用于更快地为 Facebook 页面制作有趣海报的程序。 海报有文字、图片和框架(白线和黑色背景)。 在本例中,我想在海报上插入 Logo (png 图像)。

根据图片大小,框架的尺寸(在本例中由两个形状组成)必须自动调整图片大小。

enter image description here

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

如何实现这一点?使用什么,从哪里开始?

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

最佳答案

如果您将所有框架、形状和图片放入一个新的 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;

用法:

savePanelAsImage(MainPanel, 'd:\someFolder\image001.bmp');

注释:

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

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

Example form

Resulting image

关于delphi - 如何添加相框并在图像中插入文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13238076/

相关文章:

windows - 在外部应用程序文本区域中设置插入符位置?

mysql - Delphi - TSQLQuery 即使在被释放后也会在 MySQL 上留下进程

java - 我似乎无法让 Java 读取我的文本文档

python - 有效地在字符串中进行多次替换

c - 我如何用C语言读取这一行

c++ - WinAPI - 获取用于绘图的可滚动框架

swift - 为什么自动布局不更改 View 框架

delphi - 扫描文件夹/子文件夹/文件时如何减少CPU使用率?

delphi - 在 Delphi 中强制非阻塞临时提示窗口

ios - 如何使标签宽度自动调整