Alpha Blending

aus Wikipedia, der freien Enzyklopädie

Alpha Blending ist eine Technik in der Bild- oder Videobearbeitung, bei der verschiedene Bilder zu einem Gesamtbild überlagert werden, wobei neben der Farbinformation auch der Alphakanal berücksichtigt wird.

Der Alphawert eines Bildpunktes (Pixel) ist dabei ein Maß für die Transparenz bzw. Opazität. Ein α-Wert von 0 steht dabei für völlige Transparenz, das Pixel wird unsichtbar. Ein α von 1 steht für völlige Lichtundurchlässigkeit, das Pixel überlagert alle Bildpunkte hinter ihm.

Berechnung

Hat man zwei Farben A und B gegeben und möchte A über B legen, benutzt man folgende Gleichung, um den neuen Wert für die nicht transparente Endfarbe C zu erhalten:

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle C = \alpha_A A + (1 - \alpha_A) B } .

Einen Ausdruck der Form Fehler beim Parsen (Konvertierungsfehler. Der Server („https://wikimedia.org/api/rest_“) hat berichtet: „Cannot get mml. Server problem.“): {\displaystyle \alpha x+(1-\alpha )y,\alpha \in [0,1]} nennt man auch Konvexkombination.

So ist es möglich einen RGBA- in einen RGB-Wert zu konvertieren, ohne den α-Kanal einfach abzuschneiden.

Beispiel: Ein transparentes Lila (0.5,0,1,0.75) auf weißem Grund (1,1,1) ergibt dann (0.625,0.25,1).

Zum Überblenden zweier transparenter Farben ist dagegen der Porter-Duff-Algorithmus geeignet. Dabei berechnet sich die Endfarbe C zu

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle C = \frac{1}{\alpha_C} (\alpha_A A + (1 - \alpha_A) \alpha_B B) } ,

und die Transparenz der Endfarbe bestimmt sich durch

Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle \alpha_C = \alpha_A + (1 - \alpha_A) \alpha_B }

Dies entspricht der A over B Operation im nebenstehenden Bild. Dieser Algorithmus wird in den PDF- und SVG-Formaten benutzt.

Beispiel: Das Überblenden eines transparenten Blau (0,0,1,0.5) über ein transparentes Rot (1,0,0,0.5) ergibt ein transparentes Lila (Fehler beim Parsen (MathML mit SVG- oder PNG-Rückgriff (empfohlen für moderne Browser und Barrierefreiheitswerkzeuge): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „https://wikimedia.org/api/rest_v1/“:): {\displaystyle \tfrac{1}{3}} ,0,,0.75).

In einigen Rastergrafikformaten kann α nur die Werte 0 oder 1 annehmen. In diesem Fall ist ein Bildpunkt also entweder vollständig unsichtbar oder vollständig deckend. Das GIF-Format ist ein Beispiel hierfür.

Datei:Alpha compositing.svg
Verschiedene Blendingmethoden

Neben dieser Art der Berechnung kann man die Farben A und B noch auf andere Weise zusammenfügen. Damit werden die unterschiedlichsten Effekte erzielt. Man könnte z. B. die Differenz der Farbwerte bilden, A nur dort einblenden, wo der α-Wert von B nicht 0 ist usw.

Einsatzgebiete

Bildkomposition

Eine Hauptanwendung des Alpha Blending ist die Bildkomposition: Wie bei einer Fotomontage soll ein Objekt aus einem Bild ausgeschnitten und in ein neues Bild eingefügt werden. Dazu muss der Alphakanal des Bildes mit dem auszuschneidenden Bild entsprechend editiert werden. Schneidet man das Objekt mit herkömmlichen Methoden aus, kann die Transparenz nicht berücksichtigt werden. Stattdessen setzt man für jedes Pixel einen entsprechenden Alphawert. Stellt man den Alphakanal grafisch dar, indem man die Werte als Graustufen zwischen Schwarz und Weiß interpretiert, erhält man die sogenannte Alpha-Matte. Das Erstellen dieser Maske nennt man "Pulling the Matte" oder Matting. Bis vor kurzem musste man die Matte größtenteils von Hand erstellen, da keine leistungsfähigen Algorithmen mit befriedigenden Ergebnissen zur Verfügung standen. Die SIGGRAPH-Konferenzen der Jahre 2004 und 2005 präsentierten allerdings vielversprechende Ansätze wie das Bayesian Matting und das Poisson Matting.

Die meisten Bildbearbeitungsprogramme wie GIMP oder Photoshop unterstützen die separate Bearbeitung des Alphakanals über Ebenenmasken. So kann man mit den bekannten Malwerkzeugen direkt die Transparenz eines Objektes bearbeiten.

Computergrafik

Alpha Blending wird in Computerspielen und anderen Grafikanwendungen benutzt, um die Transparenzeigenschaften von Objekten zu modellieren. So würde eine getönte Fensterscheibe einfach als farbige Fläche mit geringem α gespeichert und dargestellt. Dazu wird zunächst das erste vollkommen undurchsichtige Objekt im Sichtbereich gesucht. Ab diesem wird nun die oben vorgestellte Konvexkombination sukzessive mit den Farbwerten der weiteren Objekte gebildet. Bei High Color steht maximal 1 bit für den Alphakanal zur Verfügung, bei True Color sind es 8 bit.

Siehe auch

Literatur

  • Thomas Porter, Tom Duff: Compositing digital images. In: SIGGRAPH 1984 Proceedings. Association for Computing Machinery, New York 1984, ISBN 0-89791-138-5, S. 253–259 (englisch, Volume 18, Number 3, July 1984 [PDF; 732 kB; abgerufen am 6. Dezember 2016]).