Va bene. Dopo un sacco di ricerche su Google e aver letto più del manuale di ImageMagick di quello che mi interessa davvero, ecco la risposta. Dato che hai un'immagine in scala di grigi chiamata source.png
, ecco i miei comandi.
Per rendere trasparenti i pixel neri e mantieni i pixel bianchi così come sono, esegui questo comando:
convert source.png -alpha copy -fx '#fff' result.png
Per rendere invece trasparenti i pixel bianchi mantenendo il nero così com'è, usa:
convert source.png -alpha copy -channel alpha -negate +channel -fx '#000' result.png
Spieghiamo l'ultimo comando un po' più a fondo:
convert
– È il comando ImageMagic (uno dei tanti)source.png
– L'immagine sorgente in scala di grigi.-alpha copy
– Copia il contenuto del file precedente nel canale alfa.-channel alpha
– Specifica che solo i seguenti operatori dovrebbero influenzare il canale alfa.-negate
– Inverti il canale alfa (sarà, a causa del precedente-chanel alpha
non influisce su nessun'altra parte dell'immagine).+channel
– Specificare che solo i seguenti operatori dovrebbero influenzare i canali di colore e non modificare più il canale alfa. (Questo è il valore predefinito, quindi non è necessario fornirlo nel primo esempio più semplice.)-fx '#000'
– Sostituisci il contenuto del canale colore con pixel neri. (A causa di+channel
il canale alfa non sarà interessato).
È piuttosto importante includere quel -fx
finale opzione, altrimenti tutti i pixel semitrasparenti nell'immagine generata manterranno i colori. (Poiché questi pixel sono semitrasparenti, potrebbe non essere ovvio, ma il risultato finale non è quello che ci si aspetta.)
Ho trovato molto utile l'elenco delle opzioni di ImageMagick.