すべてのフレーム、形状、および画像を新しい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と同じサイズになります。
より良い結果/柔軟性のために、Delphi用のGraphics32ライブラリを使用することをお勧めします(レイヤー、画像のサイズ変更などをサポートしています)。