PNG Redimensionando e salvando em lote, preservando a transparência


10

Tenho mais de 700 imagens png. Eu preciso redimensionar e salvá-los. No entanto, também preciso que a transparência deles esteja intacta.

Eu tentei o Irfanview, mas isso não funcionou. O GIMP funciona, mas não consigo encontrar uma opção de salvamento em lote. Não vou redimensionar manualmente e salvar mais de 700 imagens. Isso é muito entediante.

Existe algum aplicativo por aí que faça o trabalho que eu preciso?


Você já experimentou o ImageMagick?
slhck

Não, mas não é para servidores?
Grumpy ol 'Bear

1
O que você quer dizer com servidores? É um software de linha de comando que pode ser executado em qualquer sistema operacional.
slhck

Sim não Linha de comando não é minha força. Eu preciso de algo com uma GUI útil.
Grumpy ol 'Bear

@DonSalva, você pode fazê-lo dentro de 2 linhas de cmd usando o ffmpeg, mesmo sem força
Jet

Respostas:


10

Desculpe, você precisará usar a linha de comando. Eu realmente duvido que você possa encontrar um programa GUI para lidar com isso.

Você não especificou qual sistema operacional está usando. No Linux, o comando a seguir redimensionará todos os arquivos .png no diretório atual. Observe que ele substituirá as imagens originais:

##  bash (Linux, OSX):
for i in *png; do convert "$i" -resize 32x32 "$i"; done
##  on Windows:
for %i in (*png); do convert %i -resize 32x32 %i; done

Note-se que, para a linha Windows, se você estiver usando-lo em um script em vez de na linha de comando, você precisa usar %%i, em vez de %i.


Outra opção seria o script do GIMP . Este script redimensionará sua imagem ( fonte ):

(define (batch-resize pattern width height)
(let* ((filelist (cadr (file-glob pattern 1))))
(while (not (null? filelist))
(let* ((filename (car filelist))
(image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
(drawable (car (gimp-image-get-active-layer image))))
(gimp-image-scale-full image width height INTERPOLATION-CUBIC)
(gimp-file-save RUN-NONINTERACTIVE image drawable filename filename)
(gimp-image-delete image))
(set! filelist (cdr filelist)))))

Salve-o como batch_resize.scmno scriptsdiretório do GIMP e execute-o da seguinte maneira:

gimp -i -b '(batch-resize "*.JPG" 604 453)' -b '(gimp-quit 0)'

ATUALIZAR:

Acabei de me deparar com este post que sugere que o Batch Processor do plugin GIMP, David, deve fazer exatamente o que você deseja. O artigo é sobre Linux, mas há um link para uma versão do Windows na página do plugin.


Meu mal, eu sempre esqueci o sistema operacional. É o Win7 64bit.
Grumpy ol 'Bear

Bem, o ImageMagick tem uma versão para Windows e você deve (de alguma forma) ser capaz de usar o script GIMP no Windows também.
terdon

@DonSalva ver resposta atualizada.
terdon

O ImageMagick é uma ferramenta incrível para esse tipo de trabalho. Aprenda a usá-lo e você vai adorar para sempre!
Lee Harrison

Tudo graças a @evilsoup por adicionar a linha de comando do Windows.
terdon

4

Acho que a ferramenta ImBatch pode ajudá-lo com sua tarefa. Funciona bem com Win7 x64 para mim. É de graça.


Ótima ferramenta, muito mais flexível que o IrfanView e suporta png com alfa - obrigado!
Tomáš Kafka

3

O XNConvert possui uma interface gráfica simples e intuitiva para essas tarefas.

O XnConvert é um processador de imagens em lote poderoso e gratuito para várias plataformas, permitindo combinar mais de 80 ações. Compatível com 500 formatos. Ele usa o módulo de processamento em lote do XnViewMP

  • processamento em lote
  • preserva a transparência (testada com um PNG transparente )
  • redimensionamento automático ou predefinido
  • nenhuma instalação é necessária

insira a descrição da imagem aqui


Eu tentei isso e não manteve a transparência (versão Mac). Faz que tipo de reamostragem é usada (usei Lanczos como você).
Niico 02/02

Eu mesmo resolvi isso - usando a Reamostragem Bilinear. Você pode ver na janela 'Depois' como vai ficar - se a área transparente estiver preta, você sabe que não vai funcionar.
Niico

@niico Agora tentei 3 métodos diferentes de reamostragem, Lanczos também. Todos eles produzem imagens transparentes. Talvez a versão MAC funciona de uma maneira diferente
nixda

Eu tentei isso no PC e Mac - idêntico em ambos. Além disso - agora percebo que a reamostragem que fiz é irregular como o inferno e inutilizável.
Niico

2

Por padrão, usar o FFMpeg é o caminho mais curto :)
Faça o download aqui , coloque-o na pasta com seus arquivos, abra a linha de comando, vá para a sua pasta (com cd) e escreva aqui:

mkdir Resized
for %f in (*.png) do ffmpeg -i "%~nxf" -s 32x32 "Resized\%~nxf"

e mude 32x32com o seu tamanho. Ele redimensionará seus PNGs e os colocará na Resizedpasta.
Isso fará o trabalho sem o arquivo em lotes. No entanto, se você quiser colocar isso no arquivo bat, escreva %%no lugar de %.

Espero que ajude você.


0

Não experimentei o ImBatch ou o XNConvert, que outros já mencionaram aqui, mas aqui estão mais algumas sugestões para você:

  • pngquant (uma ferramenta de linha de comando. Eu mesmo usei a GUI do Windows PNGoo incluída na página)
  • Quantizador de cores (muitas possibilidades de ajustar configurações para usar vários algoritmos de pontilhamento, etc. Eu nunca consegui funcionar tão bem quanto PNGoo / pngquant, mas isso pode ser devido ao meu conhecimento limitado).
  • TinyPNG.com (o serviço web gratuito tem um limite de 20 arquivos, cada um menor que 5 MB)

0

Eu tive esse mesmo problema várias vezes e o Photoshop foi instalado na maioria delas. Então, montei esse script usando algumas inspirações do código de outros.

https://gist.github.com/pixelbacon/7754cba64125b0240504

Uso

  • Instale o Photoshop CC ou versão mais recente.
  • Abra o script no Photoshop.
  • Uma caixa de diálogo solicitará que você escolha uma pasta de origem.
  • Uma caixa de diálogo solicitará que você escolha uma pasta de destino.
  • Outra caixa de diálogo solicitará a largura e altura máximas.
  • Outra caixa de diálogo solicitará a largura ideal e a altura ideal.
  • Aguarde enquanto o script abrirá todos os arquivos PSD ou AI que você possui na pasta de origem e salve-os como PNG-24 transparente.
  • Uma caixa de diálogo informará quando terminar.

Referências

Havia mais de 2 links para referência, minha reputação atual não me permite mais postar. Veja o script original conforme as referências estão documentadas.

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.