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 alphanon 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+channelil 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.