L’ultimo articolo di questa serie è comparso quasi due mesi fa. Era mia intenzione dargli un seguito veloce, ma le stelle erano contrarie: ho avuto uno stop forzato di quasi due settimane in febbraio per motivi di salute. Questo ha scompaginato i miei piani e l’accumulo del lavoro arretrato ha trasformato quelle due settimane in quasi un mese.
Oggi riprendo in mano la Teiera (per chi non capisse il significato del termine, si trova qui) parlando di un argomento che non è nuovo perché affrontato già sette anni fa da Martin Evening; ma è così affascinante e poco noto che ho pensato di riprenderlo, anche perché l’articolo originale, che si trovava qui, sembra scomparso dal web e non era stato che io sappia mai tradotto. In buona sostanza: esiste un modo per esprimere buona parte dei metodi di fusione tramite curve e questo può essere assai utile per capire meglio come funzionano i metodi stessi.
Il sistema si basa su un formato poco noto di Photoshop, denominato RAW e caratterizzato dall’estensione “.raw”. Questo formato non ha nulla a che vedere con ciò che oggi chiamiamo comunemente “formato RAW”. La sua differenza rispetto ai formati TIFF o JPEG è che questi hanno all’inizio del file uno header, ovvero un’intestazione, che contiene dati importanti sull’immagine come le sue dimensioni e la profondità in bit, ma non solo. Alla fine dell’header di norma iniziano i dati veri e propri – ovvero i dati dei pixel. Nel formato RAW in questione non c’è header e vengono codificati soltanto i puri pixel. Il suo utilizzo, oggi raro, era utile nel caso in cui si lavorasse su immagini codificate sempre nello stesso identico modo: se tutte le immagini hanno un unico formato sempre identico a se stesso, uno header diventa ridondante perché l’interpretazione dei dati è sempre la stessa.
A parte questo dettaglio, dobbiamo partire da una considerazione importante. I metodi di fusione nella loro accezione più semplice riguardano i livelli e in particolare come i dati presenti sui livelli si combinano tra loro. In senso più allargato riguardano anche strumenti come il Pennello o il Timbro clone, ma questo non ci importa per ora. I metodi di fusione, che da qui in poi abbrevierò in MDF, in questo contesto, sono soltanto le regole matematiche in base alle quali i livelli si combinano, o per meglio dire si fondono tra loro.
Se abbiamo un livello A (inferiore) e un livello B (superiore) il risultato di una fusione effettuata con un certo metodo può essere pensato come B [MDF, opacità] A che leggeremo come “fusione del livello B con il livello A tramite un certo MDF a una data opacità (espressa in percentuale)”. In pratica, se vogliamo moltiplicare il livello B con il livello A al 100% di opacità scriveremo: B [Moltiplica, 100%] A. Nulla impedisce, naturalmente, che il livello B sia una copia identica del livello A. In tal caso moltiplichiamo A per se stesso, sempre al 100% di opacità: A [Moltiplica, 100%] A.
Questa scrittura è naturalmente molto formale. “Moltiplica” in realtà non significa in senso stretto “moltiplica i valori RGB di un livello per quelli di un altro”: entrano in ballo problematiche legate all’intervallo ammissibile per i numeri (che diventerebbero troppo grandi) e di conseguenza fattori di scala e cose simili. Ma a noi non importa, andiamo diritti.
Questa lunga premessa ci porta ad aprire la porta al lavoro svolto da Martin Evening, che si avvale della caratteristica sopra citata dei files RAW. Ci limiteremo a lavorare su formule di fusione simili all’ultima scritta sopra, ovvero a una situazione in cui fondiamo un livello con la propria copia; ovvero, se preferiamo, con se stesso.
L’idea di base è semplice: in RGB a 8 bit ci sono 256 gradazioni possibili di luminosità per ciascun canale, caratterizzate da numeri che vanno da 0 a 255. Se riusciamo a capire esattamente come funziona un MDF che mette in relazione ciascuna di queste gradazioni con se stessa, avremo in qualche modo disassemblato il MDF e potremo sperare di rappresentarlo in una forma intuitiva.
La prima cosa che ci serve è un gradiente di esattamente 256 pixel che assuma tutti i valori da 0 a 255 in maniera corretta. Potremmo realizzarlo a mano, ma c’è un sistema più veloce. La prima cosa che dobbiamo fare è aprire un qualsiasi documento RGB. Non è importante che sia un’immagine – possiamo anche creare un documento vuoto. Fatto questo, nel pannello Livelli creiamo un livello di regolazione Curve. Di norma, le curve vengono realizzate tramite punti che sono di fatto i punti di ancoraggio di curve di Bézier. Esiste però un’altra modalità, assai psichedelica almeno in linea di principio, che ci consente di disegnare curve di forma arbitraria senza il vincolo dei punti che ben conosciamo. A questa modalità si accede cliccando sull’icona a forma di matita nella finestra della regolazione Curve. È sufficiente disegnare con il mouse all’interno della finestra per ottenere curve di qualsiasi forma, con l’unico limite della nostra abilità di disegnatori. Se lo vogliamo, possiamo anche realizzare una curva in modalità tradizionale e cliccare poi sull’icona a forma di matita per modificarla localmente.
In questo caso non vogliamo in realtà tracciare nessuna curva, e il perché sarà chiaro tra pochissimo. Vogliamo soltanto salvare come preset la forma predefinita della curva, che è perfettamente lineare. Per fare questo, selezioniamo la voce Salva predefinito curve dal menu in alto a destra nella finestra di dialogo. Compare la consueta finestra di salvataggio che ci consente di salvare il predefinito con estensione .amp (da notare che se salviamo una curva standard, ottenuta tramite le curve di Bézier, l’estensione è invece .acv). Il file che ne risulta è molto semplice da comprendere: la curva predefinita, che è una linea retta, lascia invariati i valori di tutti i canali. Ovvero, non fa nulla. Il valore 0 viene trasformato in 0, 1 in 1, 2 in 2 e via dicendo: questo per i canali R, G e B separatamente. Dal momento che ogni canale ha 256 livelli di luminosità, ci servono 256 x 3 = 768 valori per descrivere la curva. La rappresentazione è semplicemente 0, 1, 2, 3, 4, …, 254, 255 per ciascun canale. Questi sono i dati che, di fatto, vengono scritti nel file .amp che salviamo.
La cosa curiosa è che questo preset si può aprire come immagine RAW in Photoshop. Tutto ciò che dobbiamo fare è cambiare estensione al file – da .amp a .raw. Di nuovo: “.raw” non ha nulla a che fare con i dati dei file RAW come li intendiamo normalmente. È solo il formato più elementare possibile, che permette di salvare i dati di Photoshop nella loro forma più grezza. Dimensione dell’immagine, profondità in bit e via dicendo dipendono da ciò che noi dichiariamo, non da ciò che il file contiene. Al momento di rinominare il file il sistema operativo si preoccupa per noi: davvero, ci chiede, vogliamo modificare l’estensione? E se poi il nostro software decidesse di non aprire più il file? Decidiamo di rischiare, ne vale la pena. Clicchiamo su “Usa .raw”.
Aprendo in Photoshop il file rinominato, compare una finestra di dialogo che probabilmente non avete mai visto. Attenzione: non apparirà come quella a lato – i numeri che vedete qui a fianco sono quelli che dobbiamo inserire. In sostanza, questa finestra vi dice che il file “Curva_lineare.raw” contiene 768 bytes di dati (chiaro perché?). Vogliamo trasformare questi dati in un’immagine larga 256 pixel e alta 1 pixel soltanto. Inoltre, vogliamo che abbia solo un canale, perché miriamo a ottenere un’immagine in scala di grigio. La profondità sarà naturalmente 8 bit e potremo trascurare il parametro denominato Intestazione, in basso, perché sappiamo che non esiste alcuno header.
Ora è Photoshop a preoccuparsi per noi. Ci informa, giustamente, che abbiamo specificato una dimensione di immagine inferiore a quella che sarebbe possibile ottenere: su 768 bytes ne stiamo utilizzando soltanto 256. Questo in realtà è sensato: i 768 bytes sono, rispettivamente, descrittivi della curva lineare (predefinita) nei canali R, G e B. Ma la curva in questione ha la stessa forma in tutti i canali, e una volta che ne recuperiamo uno gli altri sono ridondanti. Quindi confermiamo, cliccando su OK.
Se le nostre impostazioni colore sono a posto, apparirà la finestra di dialogo visibile a fianco. In questo caso è cruciale che il colore NON venga gestito in questo documento: vogliamo preservare i puri numeri in quanto l’aspetto dell’immagine è del tutto irrilevante in questa fase. L’immagine che apriremo è soltanto un mezzo per fare un passo verso la comprensione dei metodi di fusione.
Ciò che appare sullo schermo è visibile qui a sinistra: si tratta di un perfetto gradiente, dal nero al bianco, lungo 256 pixel e alto 1 pixel soltanto. A ciascun pixel il valore della luminosità si incrementa di un’unità. Utilizzeremo questa immagine per fare il percorso inverso a quello compiuto fin qui: produrre un preset per le curve (.amp) partendo da un file RAW. Supponiamo di voler studiare il comportamento del MDF Moltiplica. Ci basta seguire questi step:
- Duplichiamo il livello di sfondo e modifichiamo il MDF del livello duplicato da Normale a Moltiplica.
- Uniamo i livelli.
- Salviamo l’immagine risultante selezionando il formato “Dati raw di Photoshop” tra i possibili formati nella finestra di salvataggio (dal menu “Formato:”). La nomineremo direttamente con l’estensione corretta, ad esempio, Moltiplica.amp
Al momento del salvataggio comparirà una finestra con alcune opzioni relative al formato dei dati RAW. Il tipo di file potrebbe non essere quello visibile in figura, TLB8, bensì PRAW – un formato alternativo per i dati RAW di Photoshop. Se così fosse, il tipo di file va cambiato, appunto, in TLB8, altrimenti il file che andremo a realizzare non sarà caricabile come curva. La differenza tra i due formati riguarda solo la codifica dei dati. L’essenza del formato RAW nel senso che abbiamo inteso rimane invariata.
[AGGIUNTA SUCCESSIVA: Marco Diodato mi segnala che questa procedura funziona su Mac ma non su PC, dove non è accessibile l’opzione di modifica del parametro PRAW. Sotto Windows si può semplicemente salvare il file rinominato (con codifica PRAW) con estensione .amp e caricare il file come predefinito di una curva. Ringrazio MD per la notevole “dritta”!]
In sostanza, abbiamo finito. Possiamo aprire una qualsiasi immagine RGB (questa tecnica non funziona in Lab, dove non esiste un canale composito, ed è perlomeno discutibile in CMYK), creare un livello di regolazione Curve e caricare come predefinito il file Moltiplica.amp che abbiamo creato. L’operazione porta alla configurazione visibile qui a sinistra: una curva (non di Bézier) che riproduce perfettamente il MDF Moltiplica. Nelle figure sottostanti, affiancate, due versioni della stessa immagine: a sinistra trattata con la curva che emula il MDF Moltiplica, a destra con il “vero” MDF Moltiplica, naturalmente selezionato su un livello che duplica l’immagine originale, con l’opacità al 100%. Potete cliccare sull’immagine per ingrandirla.
Le due immagini sono uguali, come si può vedere, e questo conferma che la curva vista nella figura precedente è a tutti gli effetti un’implementazione precisa del MDF Moltiplica. In questo modo, con un po’ di pazienza, è possibile costruire il grafico di diversi metodi di fusione: non tutti, perché alcuni di essi non hanno molto senso quando vengono applicati tra un’immagine e un suo clone. Di questo parlerò nel prossimo articolo di questa serie, che non dovrete attendere per settimane e settimane.
Per incuriosirvi, vi do un’anticipazione: Esclusione… cosa fa il MDF Esclusione? Non si utilizza spesso e il manuale di riferimento di Photoshop lo descrive come un MDF che “crea un effetto simile al metodo Differenza ma con un contrasto minore.” Eccolo qui, a sinistra, in tutto il suo splendore. Mi ricordo che Dan Margulis una volta mi disse: “hai mai giocato con una curva a U?” Risposi di no. È una curva, anche in forma più estrema di quella mostrata qui, che può essere utile per selezionare i mezzitoni diminuendo progressivamente il peso delle luci e delle ombre. Forse, senza saperlo, in realtà ci avevo giocato – con un metodo di fusione che finalmente possiamo guardare in faccia comprendendo ciò che fa alle immagini. E scusate se è poco.
Un grazie per avere seguito fin qui e un augurio di cuore – al prossimo giro della Teiera!
MO
Beh Marco, leggerò l’articolo con calma ma arrivando alla fine posso dire che la curva ad U io l’applicai ai canali a e b di lab come base per ricavare una maschera di saturazione!
con Alessandro abbiamo avuto una bella ed appagante discussione tecnica sull’argomento.
ciao
Ottima osservazione, Dario. Se pensiamo in termini di canali a e b i “mezzitoni” sono i valori più neutrali, le “ombre” sono le tinte più fredde e le “luci” le più calde. That’s the way – o, meglio, una delle vie possibili.
un curva del genere può anche essere applicata per togliere delle dominanti di un certo tipo. Ragionando sempre sui canali a e b e immaginando una fotografia con dominante magenta marcata, la si potrebbe aggredire con una curva che di fatto desatura il magenta e satura il verde. Adesso sto ragionando di fantasia dal momento che non ho mai applicato una curva a U per questo scopo e non saprei dire quanto è aggressiva. Mi ricordo però che una volta parlammo del metodo sovrapponi come una curva a…..ok non voglio svelare il mistero a presto….ciao
Ecco ripensando ad un altro utilizzo di questa mdf mi viene da pensare ad una maschera sui mezzitoni da ricavare da un canale o cmq da un’informazione di luminosità per applicarla durante lo sharpening dei mezzitoni! piuttosto che usare la fusione condizionale come suggerito da B. Fraser, qui possiamo utilizzare una maschera direttamente….e se poi usassimo una curva con MDF luminosità con una S invertita (piatta sui mezzi toni e ripida sulle ombre e sulle luci) potremmo in un sol colpo schiarire le ombre e scurire le luci…..ok vabbè sono entrato in trans agonistica….prima che sparo troppe ca….mi fermo e vi saluto.
Dario
Forse farei meglio a non dirlo, ma qualche anno fa volevo fare delle prove con una scala di grigi di esattamente 256 gradazioni, e poiché con lo strumento sfumatura ottenevo sempre delle imprecisioni, ho selezionato e riempito colonna per colonna. 🙁
Grazie per l’articolo, Marco. Davvero molto interessante.
I tuoi articoli sono sempre interessanti.
Non ci capisco niente (o quasi) ma va bene cosi.
tnks…
Faleminderit!! ( In albanese) Marco. Davvero molto interessante.
Grazie mille, Flamur!