Photoshops Gradationskurven manuell erstellen (Hex-Edit) und: »Kann man Gradationskurven umkehren?«

Photoshops Gradationskurven sind das Werkzeug, wenn es um Luminanz- und Farbkorrekturen geht. Wer jedoch glaubt, dass man solche Kurven nur mit Photoshops Gradationskurven-Dialog erstellen kann, irrt sich.

Welche Möglichkeiten gibt es?

1. Photoshops User Interface
Zunächst können Gradationskurven natürlich klassisch über Photoshops Bordmittel erstellt werden. Entweder destruktiv über das Bild-Korrekturen-Menü oder non-destruktiv mithilfe einer Einstellungsebene. Beides hat seine Berechtigung. Innerhalb des Dialoges kann man zwischen den zwei Modi »Punktmodus« und »Bleistiftmodus« wählen. Speichert man solche Kurven als Vorgabe wird ersteres zu einer ACV-Datei und letzteres zu einer AMP-Datei. Diese Unterscheidung ist, wie wir später noch sehen werden, ziemlich wichtig.


acv-vs-amp

2. Kurven mithilfe von Verläufen erstellen

Man kann Kurven auch anhand einer visuellen Repräsentation – in Form eines Verlaufs – erstellen. Wie das geht, habe ich in meinem Artikel »Füllmethoden als Gradationskurven ausdrücken« ausführlich beschrieben. (An dieser Stelle sei auch erwähnt, dass man mit der gleichen Technik mehrere Gradationskurven zu einer zusammenfügen kann.)

3. »Create Color Ramp«-Skript
create-color-ramp
Natürlich darf hier auch ein Skript nicht fehlen. Michel Mariani von Tonton Pixel hat ein hervorragendes Skript namens Create Color Ramp geschrieben, das es ermöglicht, Kurven anhand von Funktionsgleichungen zu definieren. Jetzt stellt sich natürlich die Frage, wofür man das brauchen kann: Beispielsweise für die in der Beauty-Retusche verwendeten »Solar Curves«, die man problemlos mithilfe folgender Sinusfunktion erzeugen kann:

(sin((PI/2)-4*x*PI)/2)+0.5






4. Gradationskurven manuell erstellen – Hex-Edit
Das ist wohl die … sagen wir … verrückteste Variante, denn mit »manuell« meine ich das manuelle Erstellen einer AMP-Datei in einem Hex-Editor. Wobei Erstellen nicht ganz richtig ist, denn in der Regel ist es sinnvoller, eine bestehende Datei zu editieren. Nun klingt das ganze etwas nach einem Overkill und ehrlich gesagt ist es das auch, allerdings kann es dennoch sehr hilfreich sein. Ein Beispiel: Ich wollte kürzlich eine Kurve umkehren. Warum ist hier nebensächlich. Wichtig ist jedenfalls, dass das innerhalb von Photoshop nicht möglich ist. Warum? Dazu muss ich etwas ausholen:

Kann man Gradationskurven umkehren?

Eine Gradationskurve im Punktmodus wird anhand der vom Benutzer definierten Knoten mittels Spline-Interpolation erzeugt. Diese kubische Interpolation sorgt für die weichen Kurven, die damit normalerweise entstehen. Wichtig dabei ist aber weniger die Kurve selbst, sondern die Auswirkung aufs Bild. Und wie sich sicherlich jeder vorstellen kann, ist eine weiche Kurve vorteilhafter für Korrekturen am Bild. Das Problem ist aber, dass man diese kubische Interpolation nicht einfach umkehren kann. (Das ginge nur mit linearer Interpolation.) Das bloße Tauschen der Ein- und Ausgabewerte im Gradationskurven-Dialog ist daher nicht zielführend (siehe linke Kurve):



Die rote Kurve (kubische Interpolation) ist die durch Tauschen der Ein- und Ausgabewerte entstandene Umkehrung. Das Ziel war aber die grüne Kurve. Dies ist mit Bordmitteln aber nicht erreichbar.

Daher kommen hier die eingangs erwähnten AMP-Files (Arbitrary Maps) ins Spiel. Diese erlauben es, freihand eine Kurve zu zeichnen. Theoretisch kann man damit also die korrekte Umkehrung einer Kurve zeichnen. Da es allerdings etwas schwierig ist, so eine perfekte Umkehrung zu zeichnen, kann man so eine Datei auch numerisch erstellen.

hexedit-curve
Hierzu benötigt man »bloß« einen Hex-Editor wie Hex Fiend oder den Online-Editor hexed.it. Öffnet man so eine AMP-Datei in dem Editor, sehen wir die 256 Werte, die den Verlauf der Kurve beschreiben. Natürlich muss man wissen, was man dort einträgt – das kann man mit etwas Geduld durch Trail and Error erledigen. Wichtig ist hier nur, dass es geht.

Diese AMP-Dateien sind zwar ziemlich simpel aufgebaut, trotzdem sind die Dateiformat-Spezifikationen ganz nützlich.

Für experimentelle Techniken sind diese Möglichkeiten unheimlich nützlich, aber auch im Alltag können all diese Tricks schon mal helfen.

Comments

Füllmethoden als Gradationskurven ausdrücken

Einleitung
Füllmethoden verrechnen die Pixel zweier Ebenen miteinander. Verrechnet man zwei idente Ebenen miteinander, kann man mit den Füllmethoden auch einfache Korrekturen vornehmen: Steht das Duplikat beispielsweise auf Multiplizieren, wird das Gesamtresultat dunkler. Verwendet man die Füllmethode Weiches Licht wird das Bild kontrastreicher. Und so weiter. Somit liegt der Gedanke nahe, dass man diese Ergebnisse wiederum als Gradationskurven ausdrücken kann.

Wie diese Technik funktioniert, hat ursprünglich Martin Evening in seinem Artikel »How to express blend modes as curves« beschrieben. Da der Artikel nicht mehr online ist, fasse ich ihn hier nochmal zusammen.

Vorgehensweise
1. Zunächst braucht man ein Dokument, welches exakt 256 Pixel breit und 1 Pixel hoch ist und einen Verlauf von Schwarz nach Weiß beinhaltet. Dabei muss jedes Pixel genau einen Wert von 0 bis 255 enthalten. Wie so oft in Photoshop führen viele Wege ans Ziel. Doch so einen »sauberen Verlauf« zu erstellen, ist gar nicht so einfach. Daher bedienen wir uns hier am Photoshop-Raw-Format und an einem kleinen Trick: Man öffnet dazu den Gradationskurven-Dialog und stellt dabei auf den Bleistift um (siehe Screenshot). Ohne die Gradationskurve zu verändern, muss die Kurvenvorgabe nun als Amp-Datei gespeichert werden.

amp-speichern
2. Die so entstandene »Arbitrary-Map« muss man manuell in ein Photoshop-Raw-Dokument umwandeln. Dazu reicht es, die Dateiendung auf »raw« zu setzen. Anschließend öffnet man diese Datei wieder mit Photoshop.

datei-raw

3. Nun öffnet sich das Photoshop-Raw-Optionen-Fenster. (Wer damit nicht vertraut ist, kann hier mehr darüber erfahren.) Wie im Punkt 1 schon erwähnt, muss das Bild 256 Pixel breit und 1 Pixel hoch sein. Die Anzahl der Kanäle lautet 1 (= Graustufen) und die Farbtiefe beträgt 8 Bit. Die Headergröße beträgt 0 KB.

Das hiermit entstandene Dokument besteht nun aus einem »sauberen« Verlauf von Schwarz nach Weiß (siehe Histogramm). Wer will, kann so eine vorbereitete Raw-Datei im Download-Bereich herunterladen.

histogramm-verlauf

4. Nun folgt der wichtigste Teil. Jetzt wird nämlich entschieden, welche Füllmethode schließlich als Gradationskurve ausgedrückt wird. Die Vorgehensweise ist einfach: Man muss lediglich eine Einstellungsebene erstellen (egal welche) und diese auf die gewünschte Füllmethode stellen, beispielsweise »Multiplizieren«. Die Änderungen, die durch die Füllmethode entstehen, spiegeln sich nun in der Tonwertverteilung des Verlaufs wider. Und dieser Verlauf lässt sich problemlos wieder in eine Kurve konvertieren. Eins muss man aber beachten: Nicht jede Füllmethode lässt sich hiermit in eine Kurve verwandeln. Mit den folgenden ist es möglich:

Ausschluss, Dividieren, Farbig nachbelichten, Farbig abwedeln, Ineinanderkopieren, Hart mischen, Linear abwedeln, Lineares Licht, Linear nachbelichten, Multiplizieren, Negativ Multiplizieren, Strahlendes Licht, Weiches Licht.

5. Zuletzt muss man das Dokument speichern und wieder in eine Amp-Datei umwandeln.

6. Die so entstandene Kurvenvorgabe bzw. deren Ergebnis entspricht nun (wie im folgenden Beispiel zu sehen) exakt der in Schritt 4 definierten Füllmethode.

beispiel-multiplizieren

Genauigkeit der Technik
Bei 8-Bit-Bildern ist das Ergebnis gegenüber der echten Füllmethoden nicht nur optisch ident, sondern auch mathematisch. Bei 16-Bit-Bildern ist dies etwas anders. Optisch kann man zwar auch bei 16-Bit-Bildern keinen Unterschied erkennen, wer jedoch nachmisst, wird sehen, dass die Farbwerte eventuell nicht exakt gleich sind. Der Grund dafür ist, dass diese Amp-Dateien, also die Arbitrary-Maps ausschließlich mit 8-Bit Genauigkeit vorliegen. Werden diese Kurvenvorgaben nun in einem 16-Bit-Dokument verwendet, muss die Kurve interpoliert werden. Und genau hier entstehen kleine Fehler, die bei der echten Füllmethode nicht entstehen, da diese sehr wohl mit 16-Bit Genauigkeit berechnet wird.

Fazit
Ich muss gestehen: In der Praxis hat diese Technik nur wenig Relevanz. Aber sie zeigt sehr schön, wie Photoshop funktioniert und was Füllmethoden eigentlich machen, ohne dass man deren zugrundeliegenden Formeln studieren muss. Es lohnt sich also, damit zu experimentieren.


Comments

Mehrere Gradationskurven zu einer zusammenfügen?

photoshop-80px
Kann man in Photoshop mehrere Gradationskurven zu nur einer zusammenfügen? Die Antwort lautet: Ja!

Wie das funktioniert, hat ursprünglich Martin Evening in seinem Artikel »How to express blend modes as curves« beschrieben. Da der Artikel nicht mehr online ist, beschreibe ich die Technik hier nochmal.

idee


Kurzer Überblick: Die Technik basiert auf der Idee, dass man eine unveränderte – also noch lineare – Kurve auch als Verlauf ausdrücken kann. Dieser Verlauf wird anschließend mit den Gradationskurven, die zusammengefasst werden sollen, bearbeitet. Im letzten Schritt wird der bearbeitete Verlauf wieder in eine Gradationskurve umgewandelt. Was dann überbleibt, ist eine Kurve, die alle getätigten Bearbeitungsschritte zusammenfasst.

Wie funktioniert dieses Verfahren genau?
1. Zunächst braucht man ein Dokument, welches exakt 256 Pixel breit und 1 Pixel hoch ist und einen Verlauf von Schwarz nach Weiß beinhaltet. Dabei muss jedes Pixel genau einen Wert von 0 bis 255 enthalten. Wie so oft in Photoshop führen viele Wege ans Ziel. Doch einen »sauberen Verlauf« zu erstellen, ist gar nicht so einfach. Daher bedienen wir uns hier am Photoshop-Raw-Format und an einem kleinen Trick: Man öffnet dazu den Gradationskurven-Dialog und stellt dabei auf den Bleistift um (siehe Screenshot). Ohne die Gradationskurve zu verändern, muss die Kurvenvorgabe nun als Amp-Datei gespeichert werden.

amp-speichern

2. Die so entstandene »Arbitrary-Map« muss man manuell in ein Photoshop-Raw-Dokument umwandeln. Dazu reicht es, die Dateiendung auf »raw« zu setzen.

datei-raw

Anschließend öffnet man diese Datei wieder mit Photoshop.

3. Nun öffnet sich das Photoshop-Raw-Optionen-Fenster. (Wer damit nicht vertraut ist, kann hier mehr darüber erfahren.) Wie im Punkt 1 schon erwähnt, muss das Bild 256 Pixel breit und 1 Pixel hoch sein. Die Anzahl der Kanäle lautet 1 (= Graustufen) und die Farbtiefe beträgt 8 Bit. Die Headergröße beträgt 0 KB.

Das hiermit entstandene Dokument besteht nun aus einem »sauberen« Verlauf von Schwarz nach Weiß (siehe Histogramm). Im Download-Bereich steht diese Datei auch zum Herunterladen bereit.

histogramm-verlauf


4. Nun kommt der spannende Teil: Alle Gradationskurven, die jetzt eingefügt oder erstellt werden, können anschließend als eine einzelne Kurve gespeichert werden. Denn die Änderungen spiegeln sich somit im bearbeiteten Verlauf wider.

curves-combined

Wie man in der Abbildung oben sieht, kann man nicht nur Gradationskurven zusammenfügen, sondern auch andere Einstellungsebenen zu einer Kurve kombinieren. Wichtig ist nur, dass die verwendeten Einstellungsebenen keine Informationen zwischen den Kanälen mischen. Was heißt das? Gradationskurven beeinflussen jeden Kanal einzeln, tauschen aber Informationen nicht zwischen den Kanälen aus. Im Gegensatz dazu mischt beispielsweise der Kanalmixer die Informationen der einzelnen Kanäle untereinander. Das lässt sich mit dieser Methode aber nicht abbilden, sodass der Kanalmixer nicht unterstützt wird. Die folgenden Einstellungsebenen lassen sich aber problemlos zu einer einzelnen Kurve zusammenfassen: Gradationskurve, Tonwertkorrektur, Farbbalance (ohne »Luminanz erhalten« ), Helligkeit/Kontrast, Invertieren und Belichtung.

5. Nachdem man alle Veränderungen vorgenommen hat, muss das Dokument auf die Hintergrundebene reduziert, gespeichert und wieder in eine Amp-Datei umbenannt werden.

6. Diese Kurvenvorgabe kann jetzt in Photoshop über den Gradationkurven-Dialog geladen werden.

Comments