Einzelnen Beitrag anzeigen

Benutzerbild von ULIK
ULIK

Registriert seit: 25. Sep 2006
Ort: Regensburg
427 Beiträge
 
Delphi 11 Alexandria
 
#1

Semitransparentes Zeichnen mit GDI+ ohne Wissen um Hintergrund?

  Alt 28. Nov 2013, 14:33
Eine Frage an die Grafikexperten:

ich habe ein (Kreis bzw. geschlossenes Polybezierkurzen)-Objekt, das semitransparent gefüllt wird. Dieses wird, um weiche Ränder zu erhalten, mit GDI+ gezeichnet. GDI+ verwendet dazu nun seine Formel für Alpha-Blending: es mischt die Farben des Kreises mit denen des Hintergrunds.
Also z.B. ein Kreis, blau mit alpha=10% wird auf ein opaques, rein weißes Bitmap32 so gezeichnet, daß ein Punkt im Inneren den Farbwert (a=$FF, r=$E5, g=$E5, b=$FF) hat, also ein leichtes Hellblau.

Mein Problem ist nun: wenn ich das Ganze in einem PDF ablegen will, dann kenne ich den Hintergrund nicht sondern muß ein Bild mit Alpha-Kanal erstellen, das dann vom PDF entsprechend mit Blending gezeichnet wird. Ich bräuchte also ein Bild, bei dem der gleiche Punkt den Farbwert (a=$1A, r=$00, g=$00, b=$FF) hat, also ein volles Blau mit alpha=$1A.

Hat jemand eine Idee, wie ich das mit den GDI+ Zeichenoperationen erreichen kann? Oder beleibt mir nichts weiter übrig, als das Bild erst einmal nicht-transparent zu erstellen und dann alle Punkt mit Farbe wieder explizit mit einem Alpha-Wert zu versehen? Wie würde man das dann in den Randbereichen machen, wo ja eventuell schon durch GDI+ die Farbe mit Alpha abgewandelt wurde um eine glatte Linie zu bekommen?


vielen Dank,
Uli
  Mit Zitat antworten Zitat