这就是我需要的:用于更快地为 Facebook 页面制作有趣海报的程序。 海报有文字、图片和框架(白线和黑色背景)。 在本例中,我想在海报上插入 Logo (png 图像)。
根据图片大小,框架的尺寸(在本例中由两个形状组成)必须自动调整图片大小。
如何将链接中的图像(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 库(它支持图层、图像调整大小等)。
关于delphi - 如何添加相框并在图像中插入文字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13238076/