Einzelnen Beitrag anzeigen

Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#1

Canvas.TextOut mit Text Shadow-Erweiterung

  Alt 25. Jul 2011, 19:49
Einen wunderschönen guten Abend zusammen,

hatte mir vor ein paar Tagen gedacht, dass ich "schnell" mal eine TextOut-Methode schreibe, die mir einen Text auf ein Canvas druckt -- was das normale TextOut() bisher ja kann -- und eben dazu noch einen passenden Schatten, analog zum CSS text-shadow.

So, meine Idee war die folgende: ich drucke in ein Buffer-Bitmap (PixelFormat: pf32bit, AlphaFormat: afDefined) den Text (übliches TextOut), lasse einen Weichzeichner drüber laufen (Gaussian Blur), pinsel die Bitmap auf das Canvas und drucke dann via dem üblichen TextOut den Text drauf. Soweit, so gut, aber ich habe nicht bedacht, dass mit hier die fehlende Transparenz einen Strich durch die Rechnung macht.

Ich hatte mir überlegt, das Bitmap komplett auf transparent, also bei jedem Pixel den Alpha-Kanal auf 0, zu setzen. Drucke ich den Text dann drauf, bleibt jedes Pixel transparent -> schlecht. Den Text direkt auf das Canvas drucken und darauf blurren ist blöde, da ja schon vorher etwas auf dem Canvas sein kann.

Irgendwie fällt mir im Moment nichts ein, wie ich dem Problem beikommen könnte. Ich will doch einfach nur einen Text auf einen transparenten Layer drucken, diesen blurren und unter Beachtung des Alpha-Kanals diesen Layer auf ein Canvas bringen
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat