Como substituir as cores (cor da forma e cor de fundo)?

2

Eu quero mudar o fundo branco para #3D94DB (notação hexadecimal) e mudar as linhas pretas para branco. A imagem é a seguinte:

Aquiestáoqueeuconsegui:

convertinput.png+level-colorsred,output.png

Eumudeiacordaslinhasparavermelho.Entãobrancoéfácil.

Comopossomudarasduascores?

Leiturade imagemagick: color_basics

convert balloon.gif   -alpha set  -channel RGBA \
                    -fill none -opaque blue   balloon_none.gif

Então aqui está o meu código:

 convert input.png +level-colors gray, output.png
 convert output.png -fill "#3D94DB" -opaque white target.png

E vire de cabeça para baixo, o resultado é embaraçoso.

Usar o Photoshop é fácil, mas tenho muitos ícones para manipular.

Por favor, você pode me mostrar uma solução melhor?

    
por dengApro 16.01.2018 / 14:45

1 resposta

5

I want to change the white background to #3D94DB (Hex triplet notation) and change the black lines to white.

Como você já deve ter percebido, há realmente gradações sutis (do preto ao branco) das linhas "pretas" no seu ícone de exemplo (provavelmente devido ao anti-aliasing). Estes precisam permanecer intactos para ajudar a manter a aparência do ícone:

DeacordocomoguiadeutilizaçãodoImagemagickem Ajuste do nível por cor , + cor do nível ajudará a alterar as cores "preto" e "branco", bem como (mais ou menos) as gradações de cor adequadas:

convert input.png +level-colors white,"#3D94DB" target.png

Com o seu ícone de exemplo, este comando produz os seguintes resultados:

Advertências:

  • No comando acima, a ordem de cores de substituição é para preto, em seguida, branco.

  • Não deve haver espaços entre as cores substitutas ou isso fará com que o comando falhe.

  • Dado o efeito desejado, o comando só funciona para imagens em preto e branco. Imagens com outras cores produzirão resultados inesperados. Da mesma forma, as imagens de duas cores funcionam melhor se você converter uma imagem colorida em escala de cinza.

por 16.01.2018 / 20:01