Como reduzo o tamanho de imagens em lote no linux, mantendo pequenas imagens pequenas?

7

Eu tenho um monte de fotos e é hora de limpar a bagunça e liberar algum espaço em disco. Eu sei que o incremento é ótimo para redimensionar as coisas em lote. O problema é que, em alguns diretórios, tenho pequenas imagens misturadas com as grandes. Eu gostaria de diminuir o tamanho de um lote grande, mas não de aumentar o tamanho dos pequenos.

Como exemplo, tenho um representante com dezenas de imagens de MBs nos 3000x2000s. Alguns deles já foram reduzidos para que eu pudesse enviá-los por e-mail. Eles podem ser 1024x768. Eu gostaria de reduzir os grandes para 1600x1200, uma troca de espaço em disco para qualidade que eu gosto. Mas então, com mogrify ou convert , os pequenos serão convertidos em upsizing, o que seria um desperdício de espaço em disco.

Eu encontrei algumas maneiras difíceis de usar identify com cut e alguns scripts para filtrar as pequenas fotos e organizar as outras, mas cara, tem que haver uma maneira de dizer ao Mocrify para não fazer o upsizing de minhas fotos. Como?

Existe alguma outra ferramenta mais adequada?

    
por Gabriel 22.08.2014 / 17:23

1 resposta

8

Se você usar convert , poderá especificar o parâmetro > para reduzir somente imagens maiores, deixando o outro intocado (o \ é obrigatório ou o recurso mágico & não é ignorado):

convert large_image.png -resize 1248x1024\> large_image.png
convert not_large_image.png -resize 1248x1024\> not_large_image.png

Isso só mudará as imagens maiores.

[ETA] convert é parte do ImageMagick .

    
por 22.08.2014 / 17:34