Einzelnen Beitrag anzeigen

Rapunzel

Registriert seit: 1. Mär 2019
48 Beiträge
 
Delphi 11 Alexandria
 
#1

FMX Problem bei Textausgabe auf Bitmap

  Alt 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.
  Mit Zitat antworten Zitat