![]() |
Text via Canvas.TextOut transparent über Bild zeichnen
Hi,
angenommen ich habe ein Bild, welches viele unterschiedliche Farben enthält (Zum Beispiel: Landschaftsbild/Berge). Nun möchte ich einen Text in irgendeiner Farbe transparent drüberzeichnen. Es soll also hinter dem Text kein Rechteck in einer einheitlichen Farbe sein. Ich habe als Brush.Style extra bsClear gewählt, dies ist mir allerdings nicht gerade von Nutzen. Als Zeichenmethode benutze ich Canvas.TextOut. Edit: :oops: Habe mich vertan, es scheint ein spezifisches Problem bei meinem Programm zu sein, denn scrolle ich in der selbstprogrammierten Listbox runter, funktioniert es. |
Re: Text via Canvas.TextOut transparent über Bild zeichnen
Setz doch einfach ein transparentes Label drüber.
[edit] Ansonsten könntest Du mal mit SetBkMode versuchen, den Hintergrund transparent zu mchen. Beispiel ![]() |
Re: Text via Canvas.TextOut transparent über Bild zeichnen
Habe nun ein leicht anderes Problem, welches allerdings zur alten Frage noch dazugehört: Ich habe eine Schleife welche mir Einträge einer canvasbasierenden Listbox nach und nach zeichnet. Genaugenommen eigentlich nur die sichtbaren. Es gibt gewisse Fälle, in denen ein Eintrag besonders gefärbt werden muss. Daher bekommt er eine bestimmte Farbe auf Brush.Color zugewiesen. Hinterher muss ich die Farbe wieder zurücksetzen, da sonst alles ab einem speziellen Eintrag die Hervorhebung dieses Eintrags hätte. Vorher wird Brush.Color nicht gesetzt. Wenn es nicht gesetzt ist, welche "Farbe" hat es dann bzw. wie kann ich es wieder in den Anfangsstatus zurückversetzen.
|
Re: Text via Canvas.TextOut transparent über Bild zeichnen
Merk Dir die aktuelle Farbe, bevor Du sie umstellst. Anschließend setzt Du sie wieder auf die gemerkte zurück.
Delphi-Quellcode:
OldColor := Canvas.Brush.Color;
Canvas.Brush.Color := clRed; //Zeichenoperationen //... Canvas.Brush.Color := OldColor; |
Re: Text via Canvas.TextOut transparent über Bild zeichnen
So simpel, hätte ich wirklich selbst drauf kommen müssen. Danke!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz