Dobře. Po spoustě googlování a přečtení více příručky ImageMagick, než mě skutečně zajímá, je zde odpověď. Vzhledem k tomu, že máte obrázek ve stupních šedi s názvem source.png
, zde jsou mé příkazy.
Aby černé pixely byly průhledné a zachová bílé pixely tak, jak jsou, spusťte tento příkaz:
convert source.png -alpha copy -fx '#fff' result.png
Místo toho zprůhlední bílé pixely zatímco černou ponecháte tak, jak je, použijte:
convert source.png -alpha copy -channel alpha -negate +channel -fx '#000' result.png
Pojďme si tento poslední příkaz vysvětlit trochu důkladněji:
convert
– Je příkaz ImageMagic (jeden z několika)source.png
– Zdrojový obrázek ve stupních šedi.-alpha copy
– Zkopírujte obsah předchozího souboru do alfa kanálu.-channel alpha
– Určete, že na alfa kanál mají mít vliv pouze následující operátoři.-negate
– Invertujte alfa kanál (bude, kvůli předchozímu-chanel alpha
neovlivní žádnou jinou část obrázku).+channel
– Určete, že pouze následující operátoři by měli ovlivňovat barevné kanály a již ne upravovat alfa kanál. (Toto je výchozí nastavení, a proto jej v prvním, jednodušším příkladu nemusíme poskytovat.)-fx '#000'
– Nahraďte obsah barevného kanálu černými pixely. (Kvůli+channel
alfa kanál nebude ovlivněn).
Je docela důležité zahrnout poslední -fx
jinak si všechny poloprůhledné pixely ve vygenerovaném obrázku zachovají barvy. (Protože jsou tyto pixely napůl průhledné, nemusí to být zřejmé, ale konečný výsledek není takový, jaký by člověk očekával.)
Seznam možností ImageMagick mi přišel docela užitečný.