Eu tenho uma imagem em escala de cinza. Quero convertê-lo em um PNG transparente, para que os pixels pretos (na imagem original) fiquem totalmente opacos, os pixels brancos se tornem totalmente transparentes, um pixel cinza de 50% se torne 50% transparente e assim por diante em todas as tonalidades entre.
Como posso conseguir isso?
(Sim, eu sei que essa é quase a mesma pergunta que a conversão de tons de cinza em canal alfa , mas quero saber como fazer isso usando apenas ferramentas de linha de comando - por exemplo, ImageMagick ou NetPBM.)
Aqui está um exemplo de resultado da pergunta acima mencionada. Este exemplo é um resultado que eu gostaria de alcançar usando apenas ferramentas de linha de comando.
Se você abrir esse PNG em um visualizador compatível com transparência, verá o que quero dizer.
Com o ImageMagick 7.0, a resposta acima não funciona mais. Mas você pode usar:
converter source.png -canal rgb -fx '#fff' result.png
Aka, preencha os canais RGB com espaço em branco e deixe o alfa como antes.
fonte
Com o imagemagick 7, acho que é necessário especificar
-channel RGB
antes do-fx
, caso contrário, você obtém uma imagem em preto sólido, da seguinte forma:E negar é útil se você deseja que o preto seja opaco e o branco seja transparente:
fonte