Transparenz (Grafik) - Transparency (graphic)

GIF- Animation einer apollinischen Kugelpackung mit transparentem Hintergrund

Transparenz ist in einer Reihe von Grafikdateiformaten möglich. Der Begriff "Transparenz" wird von verschiedenen Menschen auf unterschiedliche Weise verwendet, aber im einfachsten Fall handelt es sich um "volle Transparenz", dh etwas, das völlig unsichtbar ist. Nur ein Teil einer Grafik sollte vollständig transparent sein, sonst wäre nichts zu sehen. Komplexer ist "Teiltransparenz" oder "Transluzenz", bei der der Effekt erzielt wird, dass eine Grafik wie farbiges Glas teiltransparent ist. Da eine gedruckte Seite oder ein Computer- oder Fernsehbildschirm letztendlich nur eine Farbe haben kann, wird durch Mischen von Farben immer eine partielle Transparenz simuliert. Es gibt viele verschiedene Möglichkeiten, Farben zu mischen, daher ist Transparenz in einigen Fällen mehrdeutig.

Darüber hinaus ist Transparenz oft ein "Extra" für ein Grafikformat, und einige Grafikprogramme ignorieren die Transparenz.

Animiertes PNG ( APNG ) 8-Bit-Transparenz

Rasterdateiformate , die Transparenz unterstützen, umfassen GIF , PNG , BMP , TIFF , TGA und JPEG 2000 , entweder durch eine transparente Farbe oder einen Alphakanal .

Die meisten Vektorformate unterstützen implizit Transparenz, weil sie einfach vermeiden, Objekte an einem bestimmten Punkt zu platzieren. Dazu gehören EPS und WMF . Bei Vektorgrafiken kann dies nicht unbedingt als Transparenz angesehen werden, erfordert jedoch die gleiche sorgfältige Programmierung wie Transparenz in Rasterformaten.

Komplexere Vektorformate können Transparenzkombinationen zwischen den Elementen innerhalb der Grafik sowie den oben genannten ermöglichen. Dazu gehören SVG und PDF .

Ein geeigneter Rastergrafikeditor zeigt Transparenz durch ein spezielles Muster, zB ein Schachbrettmuster.

Transparente Pixel

Dieses Bild hat binäre Transparenz (einige Pixel vollständig transparent, andere Pixel vollständig undurchsichtig). Es kann vor jedem Hintergrund transparent sein, da es einfarbig ist.

Ein Farbeintrag in der Palette eines einzelnen GIF- oder PNG-Bildes kann als "transparent" und nicht als tatsächliche Farbe definiert werden. Dies bedeutet , dass wenn der Decoder ein Pixel mit diesem Wert auftritt, ist es in der Hintergrundfarbe des Teils des Schirms wiedergegeben wird , wo das Bild gelegt wird, auch wenn dies variiert Pixel- für -Pixel , wie in dem Fall eines Hintergrundbildes .

Anwendungen umfassen:

  • ein nicht rechteckiges Bild kann mit transparenter Umgebung auf das gewünschte Rechteck gefüllt werden; das Bild kann sogar Löcher haben (zB ringförmig sein)
  • in einem Textlauf kann ein spezielles Symbol, für das ein Bild verwendet wird, weil es im Zeichensatz nicht vorhanden ist, transparent hinterlegt werden, wodurch ein passender Hintergrund entsteht.

Die transparente Farbe sollte sorgfältig gewählt werden, um zu vermeiden, dass Gegenstände, die zufällig die gleiche Farbe haben, verschwinden.

Selbst diese begrenzte Form der Transparenz hat eine lückenhafte Implementierung, obwohl die meisten gängigen Webbrowser transparente GIF-Bilder anzeigen können. Diese Unterstützung erstreckt sich oft nicht auf das Drucken, insbesondere auf Druckgeräte (wie PostScript ), die keine Unterstützung für Transparenz im Gerät oder Treiber enthalten. Außerhalb der Welt der Webbrowser ist die Unterstützung für transparente GIF-Dateien ziemlich erfolgreich.

Kantenbeschränkungen von transparenten Pixeln

Dieses Bild hat binäre Transparenz. Es handelt sich jedoch um Graustufen mit Anti-Aliasing , sodass es nur vor weißem Hintergrund gut aussieht. Vor einem anderen Hintergrund würde sich ein "Ghosting"-Effekt aus den Grautönen ergeben.

Die Kanten von Zeichen und anderen Bildern mit transparentem Hintergrund sollten keine Grauschattierungen aufweisen : Diese werden normalerweise für Zwischenfarben zwischen der Farbe des Buchstabens/des Bildes und der des Hintergrunds verwendet, typischerweise liegen Grauschattierungen zwischen einem schwarzen Buchstaben und einem a weißer Hintergrund. Bei beispielsweise rotem Hintergrund wären die Zwischenfarben jedoch dunkelrot. Graue Randpixel würden ein hässliches und undeutliches Ergebnis ergeben. Für eine variable Hintergrundfarbe gibt es keine passenden festen Zwischenfarben.

Teiltransparenz durch Alphakanäle

Dieses Bild hat teilweise Transparenz (254 mögliche Transparenzstufen zwischen vollständig transparent und vollständig undurchsichtig). Es kann trotz Anti-Aliasing vor jedem Hintergrund transparent sein.

Einige Bildformate wie PNG und TIFF ermöglichen auch teilweise Transparenz durch einen Alphakanal, wodurch das Problem der Kantenbegrenzung gelöst wird. Anstatt dass jedes Pixel entweder transparent oder nicht transparent ist, kann es auf 254 Stufen teilweise transparent eingestellt werden, sodass ein Teil des Hintergrundbilds durch das Vordergrundbild hindurchscheinen kann.

Teiltransparenz wird hauptsächlich verwendet, um "weiche Kanten" in Grafiken zu erzeugen, damit sie mit ihrem Hintergrund verschmelzen. Siehe auch Monochrom oder mit Graustufen und Anti-Aliasing . Teiltransparenz kann auch verwendet werden, um ein Bild weniger hervorzuheben, beispielsweise ein Wasserzeichen oder ein anderes Logo; oder um etwas Durchsichtiges zu rendern, wie zum Beispiel eine geisterhafte Erscheinung in einem Videospiel. Das Animieren des Alphakanals in einem Bildbearbeitungsprogramm kann weiche Übergänge zwischen verschiedenen Bildern ermöglichen.

Der Prozess der Kombination einer teilweise transparenten Farbe mit ihrem Hintergrund ("Compositing") ist oft schlecht definiert und die Ergebnisse sind möglicherweise nicht in allen Fällen genau gleich. Sollen die Farben beispielsweise bei Verwendung der Farbkorrektur vor oder nach der Farbkorrektur zusammengesetzt werden?

Dieses Bild zeigt die Ergebnisse der Überlagerung jedes der obigen transparenten PNG-Bilder mit einer Hintergrundfarbe von #6080A0. Beachten Sie die grauen Fransen an den Buchstaben des mittleren Bildes.
Dies zeigt, wie die obigen Bilder beispielsweise beim Bearbeiten aussehen würden. Das grau-weiße Karomuster würde in Transparenz umgewandelt.

Transparenz durch Beschneidungspfad

Ein alternativer Ansatz für vollständige Transparenz ist die Verwendung eines Beschneidungspfads . Ein Beschneidungspfad ist einfach eine Form oder ein Umriss, der in Verbindung mit den anderen Grafiken verwendet wird. Alles innerhalb des Pfades ist sichtbar und alles außerhalb des Pfades ist unsichtbar. Der Pfad ist von Natur aus ein Vektor, kann jedoch möglicherweise verwendet werden, um sowohl Vektor- als auch Bitmap-Daten zu maskieren. Beschneidungspfade werden hauptsächlich in PostScript-Dateien verwendet.

Compositing-Berechnungen

Während einige Transparenzspezifikationen vage sind, können andere mathematische Details darüber liefern, wie zwei Farben zusammengesetzt werden sollen. Dies ist ein ziemlich einfaches Beispiel dafür, wie Compositing-Berechnungen funktionieren können, die erwarteten Ergebnisse liefern und auch Überraschungen hervorrufen können.

In diesem Beispiel sollen zwei Graustufenfarben zusammengesetzt werden. Als Graustufenwerte gelten Zahlen zwischen 0,0 (weiß) und 1,0 (schwarz). Um zu betonen: Dies ist nur eine mögliche Regel für Transparenz. Wenn Sie mit Transparenz arbeiten, überprüfen Sie die für Ihre Situation verwendeten Regeln.

Die Farbe an einer Stelle, an der die Farben G1 und G2 kombiniert werden sollen, ist ( G1 + G2 ) / 2. Einige Konsequenzen daraus sind:

  • Wenn die Farben gleich sind, ist das Ergebnis dieselbe Farbe, weil ( G1 + G1 ) /2 = G1.
  • Wo eine Farbe (G1) weiß (0.0) ist, ist das Ergebnis G2 / 2. Dies ist immer kleiner als jeder von Null verschiedene Wert von G2, sodass das Ergebnis weißer als G2 ist. (Dies lässt sich für den Fall, in dem G2 weiß ist, leicht umkehren).
  • Wo eine Farbe (G1) Schwarz (1.0) ist, ist das Ergebnis ( G2 + 1 ) / 2. Dies ist immer mehr als G2, daher ist das Ergebnis schwärzer als G2.
  • Die Formel ist kommutativ, da ( G1 + G2 ) / 2 = ( G2 + G1 ) / 2. Das heißt, es spielt keine Rolle, in welcher Reihenfolge zwei Grafiken gemischt werden, dh welche der beiden oben und welche unten ist.
  • Die Formel ist nicht assoziativ, da
( ( G1 + G2 ) / 2 + G3 ) / 2 = G1 / 4 + G2 / 4 + G3 / 2
( G1 + ( G2 + G3 ) / 2 ) / 2 = G1 / 2 + G2 / 4 + G3 / 4

Dies ist wichtig, da die endgültige Farbe beim Kombinieren von drei oder mehr Objekten mit dieser Transparenzregel stark von der Reihenfolge der Berechnungen abhängt.

Obwohl die Formel einfach ist, ist sie möglicherweise nicht ideal. Das menschliche Helligkeitsempfinden ist nicht linear – wir denken nicht unbedingt, dass ein Grauwert von 0,5 auf halbem Weg zwischen Schwarz und Weiß liegt. Solche Details spielen möglicherweise keine Rolle, wenn Transparenz nur zum Abschwächen von Kanten verwendet wird, aber bei komplexeren Designs kann dies von Bedeutung sein. Die meisten Leute, die ernsthaft mit Transparenz arbeiten, müssen die Ergebnisse sehen und können mit den Farben oder (wo möglich) dem Algorithmus herumspielen, um die gewünschten Ergebnisse zu erzielen.

Diese Formel kann leicht auf RGB- Farben oder CMYK- Farben verallgemeinert werden, indem die Formel separat auf jeden Kanal angewendet wird . Zum Beispiel endgültig red = ( R1 + R2 ) / 2. Sie kann jedoch nicht auf alle Farbmodelle angewendet werden. Beispielsweise würde Lab Color überraschende Ergebnisse liefern.

Ein alternatives Modell ist, dass an jedem Punkt in jedem Element, das für Transparenz kombiniert werden soll, eine Farbe und Opazität zwischen 0 und 1 zugeordnet ist. Für jeden Farbkanal könnten Sie mit diesem Modell arbeiten: wenn ein Kanal mit Intensität G2und Opazität T2einen Kanal überlagert mit Intensität G1und Deckkraft ist T1das Ergebnis ein Kanal mit einer Intensität gleich (1 - T2) * G1 + G2und Deckkraft 1 - (1 - T2) * (1 - T1). Jeder Kanal muss vor der Komposition mit dem entsprechenden Alpha-Wert multipliziert werden (sogenanntes vormultipliziertes Alpha ). Die SVG-Dateispezifikation verwendet diese Art der Überblendung, und dies ist eines der Modelle, die in PDF verwendet werden können.

Alphakanäle können auf diese Weise implementiert werden, wobei der Alphakanal einen Opazitätspegel bereitstellt, der gleichermaßen auf alle anderen Kanäle angewendet wird. Um mit der obigen Formel zu arbeiten, muss die Deckkraft auf den Bereich 0 bis 1 skaliert werden, unabhängig von der externen Darstellung (oft 0 bis 255 bei Verwendung von 8-Bit-Samples wie "RGBA").

Transparenz in PDF

Ab Version 1.4 des PDF-Standards ( Adobe Acrobat Version 5) wird Transparenz (einschließlich Transluzenz) unterstützt. Transparenz in PDF-Dateien ermöglicht es Erstellern, verschiedene Effekte zu erzielen, darunter das Hinzufügen von Schatten zu Objekten, das halbtransparente Machen von Objekten und das Verschmelzen von Objekten ineinander oder in Text. PDF unterstützt viele verschiedene Mischmodi , nicht nur die gebräuchlichste Mittelungsmethode, und die Regeln für das Zusammensetzen vieler überlappender Objekte ermöglichen Auswahlmöglichkeiten (z. B. ob eine Gruppe von Objekten gemischt wird, bevor sie mit dem Hintergrund gemischt wird, oder ob jedes Objekt wiederum gemischt wird in den Hintergrund).

PDF-Transparenz ist ein sehr komplexes Modell, dessen ursprüngliche Spezifikation von Adobe über 100 Seiten lang ist. Eine Hauptkomplikationsquelle ist, dass das Mischen von Objekten mit unterschiedlichen Farbräumen schwierig und fehleranfällig sein kann und Kompatibilitätsprobleme verursachen kann . Transparenz in PDF wurde entwickelt, um keine Fehler in PDF-Viewern zu verursachen, die sie nicht verstanden – sie würden einfach alle Elemente als vollständig undurchsichtig darstellen. Dies war jedoch ein zweischneidiges Schwert, da Benutzer mit älteren Viewern, PDF-Druckern usw. etwas völlig anderes als das ursprüngliche Design sehen oder drucken konnten.

Die Tatsache, dass das PDF-Transparenzmodell so kompliziert ist, bedeutet, dass es nicht gut unterstützt wird. Dies bedeutet, dass RIPs und Drucker oft Probleme haben, PDFs mit Transparenz zu drucken. Die Lösung hierfür besteht darin, entweder das Bild zu rastern oder die Vektortransparenzreduzierung auf das PDF anzuwenden. Die Vektortransparenzabflachung ist jedoch äußerst komplex und wird nur von wenigen Spezialpaketen unterstützt.

Transparenz in PostScript

Die PostScript- Sprache unterstützt abhängig von der PostScript-Ebene eingeschränkte (nicht teilweise) Transparenz. Teiltransparenz ist mit der pdfmark-Erweiterung verfügbar, die in vielen PostScript-Implementierungen verfügbar ist.

Level 1

Level 1 PostScript bietet Transparenz über zwei Methoden:

  • Ein Ein-Bit-(monochromes) Bild kann als Maske behandelt werden. In diesem Fall können die 1-Bits mit jeder einzelnen Farbe gemalt werden, während die 0-Bits überhaupt nicht gemalt werden. Diese Technik kann nicht auf mehr als eine Farbe oder auf Vektorformen verallgemeinert werden.
  • Beschneidungspfade können definiert werden. Diese schränken ein, welcher Teil aller nachfolgenden Grafiken zu sehen ist. Dies kann für jede Art von Grafik verwendet werden, jedoch war in Level 1 die maximale Anzahl von Knoten in einem Pfad oft auf 1500 begrenzt, so dass komplexe Pfade (zB das Schneiden um die Haare in einem Foto eines Kopfes einer Person) oft scheiterten.

Level 2

Level 2 PostScript fügt keine spezifischen Transparenzfunktionen hinzu. Durch die Verwendung von Mustern können jedoch beliebige Grafiken durch Masken gemalt werden, die durch beliebige Vektor- oder Textoperationen definiert sind. Dies ist jedoch aufwendig umzusetzen. Darüber hinaus stieß dies zu oft auf Implementierungsgrenzen, und nur wenige Anwendungsprogramme boten jemals diese Technik an.

Stufe 3

Level 3 PostScript fügt jedem Rasterbild weitere Transparenzoptionen hinzu. Es kann eine transparente Farbe oder eine Reihe von Farben aufgetragen werden; oder eine separate 1-Bit-Maske kann verwendet werden, um einen Alphakanal bereitzustellen.

Gekapseltes PostScript

EPS-Dateien enthalten PostScript, das Level 1, 2 oder 3 sein kann und die oben genannten Funktionen nutzt. Ein subtileres Problem tritt bei den Vorschauen für EPS-Dateien auf, die normalerweise verwendet werden, um die Ansicht der EPS-Datei auf dem Bildschirm anzuzeigen. Es gibt praktikable Techniken zum Einstellen der Transparenz in der Vorschau. Eine TIFF-Vorschau kann beispielsweise einen TIFF-Alphakanal verwenden. Viele Anwendungen verwenden diese Transparenzinformationen jedoch nicht und zeigen die Vorschau daher als Rechteck an. Eine halbproprietäre Technik, die in Photoshop Pionierarbeit geleistet und von einer Reihe von Druckvorstufenanwendungen übernommen wurde, besteht darin, einen Beschneidungspfad an einer Standardposition der EPS zu speichern und diesen zur Anzeige zu verwenden.

Darüber hinaus generieren einige der Programme, die EPS-Vorschauen generieren, Transparenzinformationen in der Vorschau.

Einige Programme haben versucht, dies zu umgehen, indem sie das gesamte Weiß in der Vorschau als transparent behandelt haben, aber auch dies ist in den Fällen problematisch, in denen einige Weiß nicht transparent sind.

In jüngerer Zeit sind Anwendungen erschienen, die die Vorschau vollständig ignorieren; Sie erhalten daher durch die Interpretation des PostScripts Informationen darüber, welche Teile der Vorschau zu malen sind.

Siehe auch

Verweise

Externe Links