Registriert seit: 1. Mär 2019
48 Beiträge
Delphi 11 Alexandria
|
FMX Problem bei Textausgabe auf Bitmap
9. Jan 2022, 18:49
Guten Abend,
ich möchte in meiner FMX App eine Graphik zunächst in einer Bitmap als Doublebuffer erstellen und diese dann auf den Canvas einer Paintbox zeichnen. Leider wird der Text aus meiner Bitmap nicht so gestochen scharf auf dem Bildschirm meines Samsung Android Tabletts dargestellt als wenn ich den Text direkt auf den Canvas der Paintbox ausgebe. Ich gehe davon aus, dass es mit dem Skalierungsfaktor 2 zusammenhängt, der auf dem Tablett angewendet wird.
Delphi-Quellcode:
procedure TfrmMain.PtBoxPaint(Sender: TObject; Canvas: TCanvas);
Var Bmp:TBitmap; SrcRc,TxtRc:TRectF;
begin
Canvas.Font.Size:=30;
Bmp:=TBitmap.Create(Trunc(PtBox.Width),Trunc(PtBox.Height));
Bmp.Canvas.BeginScene;
Bmp.Canvas.Fill.Color:=TAlphaColors.Black;
Bmp.Canvas.Font.Assign(Canvas.Font);
TxtRc:=TRectF.Create(10,10,PtBox.Width,PtBox.Height);
Bmp.Canvas.Stroke.Kind:=TBrushKind.None;
Bmp.Canvas.FillText(TxtRc, 'Testtest', false, 1, [], TTextAlign.Leading, TTextAlign.Leading);
Bmp.Canvas.EndScene;
SrcRc:=TRectF.Create(0,0,Bmp.Width,Bmp.Height);
Canvas.DrawBitmap(Bmp, SrcRc, SrcRc, 1);
TxtRc:=TRectF.Create(10,35,PtBox.Width,PtBox.Height);
Canvas.Fill.Color:=TAlphaColors.Black;
Canvas.FillText(TxtRc, 'Testtest', false, 1, [], TTextAlign.Leading, TTextAlign.Leading);
Bmp.Free;
end;
Vielleicht hat ja jemand Zeit und Lust, mir die Lösung des Problems zu verraten.
|
|
Zitat
|