Transformiere RGBA mit der darunter liegenden Farbe in RGB?

8

Ich habe ein Problem mit der Umwandlung von Farben in Java. Das vereinfachte Problem sieht wie folgt aus:

Meine Anwendung enthält ein Bild. Ich habe ein Recangle über dieses Bild gelegt. Die Farbe des Rechtecks ​​wird als neue Farbe definiert (255, 255, 0, 80).

Ist es möglich, die auf dem Bildschirm angezeigte Farbe in eine Farbe ohne Alpha-Wert ohne die getPixelColor () - Methode zu berechnen / umwandeln? Anders formuliert: Kann ich eine Farbe ohne Alpha-Wert aus einer Farbe mit Alpha-Wert + der darunter liegenden Farbe berechnen?

Ich hoffe, dass mir jemand helfen kann.

Grüße, Michael

    
Michael 26.06.2011, 18:48
quelle

1 Antwort

7

Wie der Wikipedia-Artikel angibt (unter der Annahme eines undurchsichtigen Hintergrunds):

%Vor%

Haftungsausschluss: habe das nicht getestet, aber es sollte funktionieren.

Wenn die Vordergrundfarbe konstant ist (z. B. ein ausgefülltes transparentes Rechteck), können Sie eine Menge optimieren, indem Sie fgColor.getComponent() * fgColor.getAlpha() und (255 - fgColor.getAlpha()) vorberechnen.

    
Karel Petranek 26.06.2011, 19:33
quelle

Tags und Links