Lote substituindo cores por transparência


17

Eu tenho um número muito grande de imagens PNG (muitas para praticamente fazer uma de cada vez) com um fundo rosa brilhante e gostaria de substituir a cor do fundo pela transparência. Se isso não for possível ou particularmente difícil, seria útil substituir a cor especificada por branco.

Eu tenho o gimp, mas não o photoshop, e não estou particularmente confortável com a linha de comando; portanto, se uma solução exigir, mostre cada etapa. Seria ótimo poder fazer isso, qualquer ajuda seria apreciada.

Respostas:


21

Sei que você disse que não se sente confortável com as ferramentas de linha de comando, mas o ImageMagick pode fazer isso:

Substituir uma cor específica

convert balloon.gif -transparent blue balloon_trans.gif

insira a descrição da imagem aqui insira a descrição da imagem aqui insira a descrição da imagem aqui

Onde balloon.gifestá a imagem de origem, -transparentespecifica que você deseja uma BG transparente, blueé a cor que deseja substituir e balloon_trans.gifé a imagem concluída.

Isso pressupõe que o seu "rosa brilhante" não faça parte de nenhuma das imagens. Para uma remoção um pouco mais inteligente do plano de fundo (floodfill), confira este tutorial: Mascarando fundos simples (floodfill)

Isso pode ficar um pouco complicado e algumas das opções que eles especificam provavelmente não são necessárias para o que você está tentando fazer, então, como o @graphics man sugere que você possa adicionar backgroundao comando


Se você puder me dizer qual sistema operacional está usando e uma imagem de exemplo, eu posso ajudá-lo com um script para automatizar isso para muitas imagens


Específico à sua situação:

Primeiro, instale o ImageMagick . Pode ser necessário reiniciar após a instalação para que sua variável PATH seja atualizada (eu fiz)

Depois de instalado, inicie um prompt de comando (Menu Iniciar, digite cmd , pressione enter)

Você precisa alterar os diretórios para onde as imagens são salvas. Para sua situação, digite o seguinte comando:

cd C:\Users\Eric\Pictures\pngs\logos

Agora precisamos criar uma pasta para salvar todas as imagens em:

mkdir batch

E agora, o comando para converter todas as imagens:

FOR %G IN (*.png) DO convert "%G" -transparent #FF00FF "batch\%G"

Nota: Com o ImageMagick v7, use em magickvez de convert, como

FOR %G IN (*.png) DO magick "%G" -transparent #FF00FF "batch\%G"

Se tudo correu bem, as imagens salvas recentemente devem estar na pasta de lote que você criou.

insira a descrição da imagem aqui insira a descrição da imagem aqui insira a descrição da imagem aqui


1
boa solução, se alguém quiser saber o equivalente linux bash: para arquivo em * .png; converte "$ {file}" -transparent '# ffcc66' "batch / $ {file}"; feito
Sameer Shemna

Para Mac, isso parece estar relacionado: superuser.com/questions/773590/… Obrigado!
Dan Rosenstark 9/08/16

Isso não funciona como o Gimp. Se você possui um pixel branco com alfa 0,5 em cima de um pixel preto e deseja remover a cor preta, o pixel cinza permanecerá.
Iulian Onofrei

3

Se você estiver executando o gimp e não quiser usar o Imagemagick, poderá dar uma olhada no David's Batch Processor (DBP) . É um plug-in para o gimp para processamento em lote. Nota : nunca o usei nem testei, mas era algo que já havia visto antes. Se você tivesse o Photoshop, eu poderia mostrar como usar o lote ou a ação.


Eu tenho isso e o usei para cortar em massa essas imagens, mas não parece haver nenhuma opção para substituir as cores. Talvez eu esteja sentindo falta disso ou tenha uma versão antiga?
ete 21/02

Eu não sei. Estou familiarizado com o plug-in porque um cliente o estava usando para editar imagens em massa e estava recebendo um erro. Como John postou, o Imagemagick é uma opção poderosa e pode resolver todos os seus problemas. O site é muito detalhado. Dê uma olhada em imagemagick.org/script/index.php
DᴀʀᴛʜVᴀᴅᴇʀ

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.