AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Gelöst: Datum/Zeitestempel auf ein Image pinseln. (FMX)
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von TSHObject · begonnen am 7. Mär 2020 · letzter Beitrag vom 9. Mär 2020
Antwort Antwort
TSHObject

Registriert seit: 29. Apr 2006
Ort: Schweiz
12 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
TSHObject

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

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

  Alt 7. Mär 2020, 15:26
Hab's nun selber gefunden.

Anstatt "TColorRec.Lime" muss man "TAlphaColorRec.Lime" verwenden.

Also so:
_CapturedImage.Canvas.Stroke.Color:=TAlphaColorRec .Lime;
_CapturedImage.Canvas.Fill.Color := TAlphaColorRec.Black;
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.538 Beiträge
 
Delphi 11 Alexandria
 
#3

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

  Alt 8. Mär 2020, 12:13
Du kannst Dir das Leben noch erleichtern, wenn Du die Unit "System.UIConsts" in Deine Units einbindest, wo Du Angaben zur Farbe machen mußt.

Dann kannst Du statt

"TAlphaColorRec.Lime;"

einfach schreiben

"claLime;"

Daneben stehen in dieser Unit noch einige interessante Color Funktionen zur Verfügung, z.B. wenn man mal AlphaColor zu TColor umrechnen muss oder einen RGB-Alphacolorwert zu BGR-Alphacolor umrechnen muss (z.B. auf dem MACOS sind Bitmaps als BGR-Colors konstruiert).
  Mit Zitat antworten Zitat
TSHObject

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

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

  Alt 9. Mär 2020, 21:45
Übrigens,

falls jemand das Projekt ansehen will.
Es ist eine Überwachungskamera, welche Bilder in einen Ordner speichert sobald sich etwas bewegt.

Hier ist das ganze Projekt erhältlich. Es braucht keine zusätzlichen Komponenten und ist zur Zeit nur für Windows compilierbar.

https://sourceforge.net/p/surveillan...ode/HEAD/tree/

Ich möchte es noch um folgende Punkte erweitern.

A) Bilder können auch per E-Mail versendet werden.
B) die Einstellungen müssen noch in eine ini gespeichert und natürlich auch wieder geladen werden.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz