Exemplo de situação: meu site está pesado, sei que tem muitas imagens JPG pesadas que foram enviadas sem nenhuma compactação ou redimensionamento, como imagens originais de câmeras, então preciso de uma forma de reduzir todas as imagens de uma vez.
Obs.: Este tutorial é feito com base no Ubuntu, por isso o uso do apt-get install, verifique o comando de instalação para a sua distribuição.
Instalando o pacote necessário:
sudo apt-get install imagemagick
Após a instalação, aqui está um exemplo bem prático que provavelmente é o que você estava procurando:
mogrify -resize '2048x2048>' -quality 90 *.jpg
Este comando converte as imagens da pasta que sejam .jpg para caber dentro de 2048×2048, porém mantendo as proporções e por fim compacta para 90% de qualidade.
Este mesmo pacote trás também um outro comando bastante útil:
convert imagem.png imagem.jpg
Nesse caso estamos convertendo imagens PNG para JPG.
Ele também pode receber parâmetros, como por exemplo:
convert imagem.png -quality 60 -resize '1200x1200>' imagem.jpg
Observações sobre o -resize: se você não colocar o > no final e houverem imagens na pasta menores do que o tamanho que você informou, elas serão aumentadas e você terá uma imagem desfocada e mais pesada. Este simbolo é para que só sejam reduzidas as imagens maiores do que o tamanho informado. Isso não interfere em outros parâmetros como o -quality que será aplicado em todos os casos.