5

これは私が必要としているものです: facebook ページの楽しいポスターをすばやく作成するためのプログラム。ポスターには、テキスト、写真、フレーム (白線と黒背景) があります。今回はポスター(png画像)にロゴを入れたいと思います。

画像のサイズに応じて、フレーム (この場合は 2 つの形状で構成されます) の寸法は画像用に自動的にサイズ変更する必要があります。

ここに画像の説明を入力

リンクからその画像(2つの形状コンポーネント、2つの画像コンポーネント、2つのラベル)からポスターを画像として保存するにはどうすればよいですか?

これを達成する方法は?何を使用し、どこから始めますか?

この質問が削除されないことを願っています。

4

1 に答える 1

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;

使用法:

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

ノート:

  • これはVCLベースのサンプルです。
  • 画像を他の形式(BMPではなく)で保存するには、次を使用します。TPngImage(Vcl.Imaging.pngImage)またはTJPEGImage(Vcl.Imaging.jpeg);
  • FireMonkey(> = Delphi XE2)を使用する場合は、someParentComponent.MakeScreenShot();を利用できます。
  • 結果の画像は、tPanelと同じサイズになります。

より良い結果/柔軟性のために、Delphi用のGraphics32ライブラリを使用することをお勧めします(レイヤー、画像のサイズ変更などをサポートしています)。

フォームの例

結果の画像

于 2012-11-05T18:51:56.907 に答える