Farbkalkulation mit Alpha Werten

Für allgemeine Fragen zur Programmierung mit PureBasic.
Lambda
Beiträge: 526
Registriert: 16.06.2011 14:38

Farbkalkulation mit Alpha Werten

Beitrag von Lambda »

Ich versuche gerade ColorBlending-Callbacks zu schreiben. Problem: bei z.B der Farbmultiplikation gibt es Probleme bei den Übergangswerten.

Code: Alles auswählen

    ProcedureReturn RGBA((Red(SourceColor)*Red(TargetColor))/255,(Green(SourceColor)*Green(TargetColor))/255,(Blue(SourceColor)*Blue(TargetColor))/255, Alpha(TargetColor))
Funktioniert einwandfrei in Bereichen des Quellbildes mit Alpha:255. Übergangswerte werden dunkler.. dunkler bis schwarz.

Ab 0 wird der Alpha Wert sowie RGB von Target verwendet. So wird der Transparente Bereich von Bildern ausgeblendet. Auch Zwischenwerte nehmen den Alpha vom Ziel.

Im Grunde brauch ich nur die RGB Kalkulation zwischen SourceColor und TargetColor. Dabei muss Alpha mit berechnet werden da z.B ein durchsichtiger grauer Ball auf einem blauen Bild dunkel-grau-blau mit der Multiplikation ergeben soll.