Entwickler-Ecke
Multimedia / Grafik - transparente Textausgabe
toms - Mo 06.10.03 10:06
Titel: transparente Textausgabe
Hi!
Wenn ich Text auf ein TImage ausgebe, wird der Bildhintergrund weiss. Wie kann ich ihn transparent behalten? Folgender Code funktioniert nicht:
Delphi-Quelltext
1: 2: 3: 4: 5:
| Image1.Canvas.Pen.Color := clBlack; Image1.Canvas.TextOut(2, 3, 'Test'); |
Moderiert von
Tino: Code- durch Delphi-Tags ersetzt.
maximus - Mo 06.10.03 10:39
îch glaube so:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| Image1.Canvas.brush.style := bsClear; Image1.Canvas.Pen.Color := clBlack; Image1.Canvas.TextOut(2, 3, 'Test'); |
viel spass
smiegel - Mo 06.10.03 12:00
Hallo,
am einfachsten geht es, wenn Du die Eigenschaft Transparent des Image-Objekts auf True setzt.
maximus - Mo 06.10.03 14:55
Er will ja das die der schrift-hintergrund tranzparent ist...und nicht das bil, wo die schrift draufgemahlt wird :wink:
smiegel - Mo 06.10.03 15:04
Hallo,
@maximus:
| toms hat folgendes geschrieben: |
| Wenn ich Text auf ein TImage ausgebe, wird der Bildhintergrund weiss |
Genau das wird durch meinen Tipp vermieden. Falls Du es nicht glaubst, kannst Du es ja ausprobieren.
maximus - Mo 06.10.03 16:42
Mal angenommen er hat ein bild mit seiner grinsenden fresse drauf...*ähem*...und er möchte auf seine stirn 'Superman' schreiben, dann würdest du mit 'transparent' nix eirreichen...vielleicht, dass seine stirn durchsichtig ist und in dem durchsichtigen rechteck 'Superman' steht.
was soll das denn bitte bringen :?: ...die vorgeschlagene lösung funktioniert auf jedenfall
toms - Mo 06.10.03 18:08
Danke für die Antworten. Jedoch funktioniert keine!
Die Hintergrundfarbe des Canvas bleibt immer noch weiss,
egal ob ich den Brush.Style verstelle oder die SetBkMode() verwende,
oder das Bild auf transparent stelle.
Habe auch schon alle Vorschläge vor dem Posten durchprobiert.
Noch andere Ideen?
MSCH - Mo 06.10.03 18:49
Verzichte auf die VCL Routinen, die sind in diesem Falle imho grütze. Bei mir funktioniert es via setBKMode() und DrawText() er API.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| with Sender.Canvas do begin SetBkMode(Handle,TRANSPARENT); SetTextColor(Handle,clWhite); DrawText(Handle,@s1[1],length(s1),NameRect,dt_left); SetTextColor(Handle,clBlack); DrawText(Handle,@S2[1],length(S2),Rect,dt_left); end; |
grez
msch
toms - Mo 06.10.03 19:04
thx für den Code aber der Test war auch negativ.
Habe aber unterdessen die Lösung (durch probieren) selber gefunden ,
kann aber nicht ganz nachvollziehen, warum so.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| with Image1 do begin Transparent := True; Canvas.Brush.Color := 1; Canvas.FillRect(ClientRect); Canvas.TextOut(10,10,'So klappt''s!'); end; |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!