Delphi10.2 FMX
ネットの情報を参考に画像に文字を合成しようとしています
そこで以下のようなコードを書きました
しかしながら、test.jpgは表示されますが、文字が表示されません
皆様ご教授宜しくお願いいたします
procedure TForm2.FormCreate(Sender: TObject);
const
Text = 'こんにちは';
var
Layout: TTextLayout;
bmp : TBitmap;
begin
bmp :=TBitmap.CreateFromFile('test.jpg');
Layout := TTextLayoutManager.DefaultTextLayout.Create;
Layout.BeginUpdate;
Layout.TopLeft := TPointF.Create(0, 0);
Layout.Font.Size := 60;
Layout.Color := TAlphaColorRec.Brown;
Layout.Text := Text;
Layout.EndUpdate;
Layout.RenderLayout(bmp.Canvas);
imagecontrol1.Bitmap := bmp;
end;
end.
場所として正しいかわかりませんが
bmp.Canvas.BeginScene();//****★
Layout.RenderLayout(bmp.Canvas);
ImageControl1.Bitmap := bmp;
bmp.Canvas.endScene();//****★
で一応文字列描画されました。
おぉ、文字が出ました! ウォレスさんありがとうございます!!
ということは、
・RenderLayoutでbmp.Canvasを渡しても自動的に描画されない
・BeginScene()、EndScene()で描画の開始と終了を通知して描画してもらう
ということですね
今までVB/C#どっぷりだったので想像もつきませんでした
泥沼にはまっていたので本当に助かりました!!
ウォレスさん、皆さん有難うございました
ツイート | ![]() |