batch “converta” em jpg com nice alpha flatten

0

Eu gostaria de redimensionar em lote e converter para jpg alguns arquivos png. Mas alguns pixels são transparentes e alguns são meio transparentes; Eu gostaria que os transparentes fossem brancos, e os semitransparentes fossem brancos meio misturados com cores.

Eu tenho duas soluções metade:

convert file.png -resize 1200x1200  -background white -flatten  file.jpg

que funciona bem, mas apenas para um arquivo; Então, há uma maneira fácil de agrupar o comando "converter"? Eu quero que meus arquivos mantenham seus nomes, que não são numerados (img001.png, img002.png, etc.), mas descritivos (room.png, horse.png, etc.) ... Ou:

mogrify -resize 1200x1200 -format jpg -background "#FFFFFF" *.png

quais lotes bem, mas os pixels semitransparentes são coloridos, o que é muito feio quando uma linha deve desaparecer em alfa; existe uma maneira de corrigir isso?

    
por Fal 20.01.2016 / 15:24

1 resposta

0

Você pode usar um for loop :

for f in ./*.png; do convert "$f" -resize -background white -flatten "${f%.*}.jpg"; done

Isso funcionará em todos os arquivos com um nome terminando em .png no diretório atual. Cada um contorna o loop, o nome do arquivo correspondente é lido na variável $f ; Para massificar essas informações no nome do arquivo de saída, o comando acima usa a substituição de parâmetros .

% bl0ck_qu0te%     
por evilsoup 20.01.2016 / 17:08