Eu recomendaria usar a ferramenta convert
do ImageMagick:
convert input.png -resize 900x900 output.jpg
A opção -resize
deve ser bastante óbvia e o formato do arquivo de saída é determinado automaticamente usando sua extensão de nome de arquivo.
Para executar isso em todos os arquivos no diretório atual, tente isto:
for inputfile in ./* ; do
outputfile="${inputfile%.*}.jpg"
convert "$inputfile" -resize 900x900 "$outputfile" &&
[[ -e "$outputfile" && "$inputfile" != "$outputfile" ]] && rm "$inputfile"
done
Isso levará todos os arquivos do diretório atual (independentemente do tipo de arquivo) e, para cada arquivo de entrada, criará o respectivo nome de arquivo de saída removendo a extensão antiga e adicionando ".jpg". Em seguida, ele usa convert
, conforme descrito acima, para redimensionar e converter a imagem, o que cria um novo arquivo e deixa o original como está. Se isso foi bem-sucedido ( &&
), verifique se o arquivo de saída existe e se o nome do arquivo de entrada é diferente do nome do arquivo de saída (por exemplo, se um dos arquivos originais já era um jpg). Agora, se essas condições forem atendidas, presumimos que podemos excluir o arquivo de entrada.