Einzelnen Beitrag anzeigen

TSHObject

Registriert seit: 29. Apr 2006
Ort: Schweiz
10 Beiträge
 
Delphi 12 Athens
 
#1

Gelöst: Datum/Zeitestempel auf ein Image pinseln. (FMX)

  Alt 7. Mär 2020, 07:21
Hallo,

ich habe folgende Situation.
Auf meinem Form gibt es die Komponente Image1 vom Typ TImage (FMX) mit einem Bild von meiner Kamera.
Nun möchte ich auf das Bild drauf den Datum/Zeit-Stempel zeichnen und dann das Bild abspeichern.

Leider klappt das Zeichnen nicht. Weder das schwarze Rechteck noch irgend ein Text ist in dem gespeicherten Bild am Schluss sichtbar.

Delphi-Quellcode:
procedure TFrmMain.SavePicture(const _Path:string);
var
_BackgroundRect:TRectF;
_CapturedImage:TBitmap;
begin
   StopVideo;
  FPitcureDateTime:=now;
  _CapturedImage:=TBitmap.Create; // temporäres Bitmap für das Zeichnen
  _CapturedImage.Assign(Image1.Bitmap); // das Bild in das temporäre Bitmap kopieren.
  _BackgroundRect:=TRectF.Create(16,16,316,56); // Rechteck für das Zeichnen des Datum/Zeitstempels erzeugen.
  _CapturedImage.Canvas.BeginScene;
  _CapturedImage.Canvas.Font.Size:=20;
  _CapturedImage.Canvas.Stroke.Kind:=TBrushKind.Solid;
  _CapturedImage.Canvas.Stroke.Thickness:=10;
  _CapturedImage.Canvas.Stroke.Color:=TColorRec.Lime;
  _CapturedImage.Canvas.Fill.Color := TColorRec.Black;
  _CapturedImage.Canvas.Fill.Kind:=TBrushKind.Solid;
  _CapturedImage.Canvas.DrawRect(_BackgroundRect,20,20,AllCorners,1.0); // schwarzes Rechteck zeichnen.
  _CapturedImage.Canvas.FillText(_BackgroundRect,FormatDateTime('yyyyMMdd_hh.mm.ss', FPitcureDateTime), false, 1,[TFillTextFlag.RightToLeft], TTextAlign.Center, TTextAlign.Center);
  _CapturedImage.Canvas.EndScene;
  _CapturedImage.SaveToFile(_path+'saveimage.png');
end;
Hat jemand einen Tip?

Danke.

Geändert von TSHObject ( 7. Mär 2020 um 15:24 Uhr)
  Mit Zitat antworten Zitat