Algo como o seguinte deve atender às suas necessidades:
for i in *.jpg
do
if [ $(identify -format "%[fx:w]x%[fx:h]\n" "$i") = 1920x1080 ]
then
convert "$i" -rotate 90 "${i%.jpg}_rotated.jpg"
fi
done
Altere simplesmente a configuração 1920x1080
para seu tamanho desejado e copie e cole o snippet inteiro em uma janela do Terminal no diretório que contém os arquivos de imagem ...
Alguma explicação da sintaxe ...
Primeiro, há a estrutura :
-
A base para este snippet de código é o
for
loop que localiza todos os arquivosjpg
em um determinado diretório:for i in *.jpg do <Insert command here....> done
Mas algumas exclusões precisam ser feitas antes que um comando seja executado e, para isso, aninhemos uma instrução condicional usando
if
... -
A segunda estrutura é uma declaração
if
que contém otest
para o tamanho de jpg necessário:if <Insert test here...> then <Insert command here...> fi
Em seguida, o loop for
e a instrução if
são aninhados e adicionados à mistura:
-
O teste apropriado , que procura por jpgs que são de tamanho necessário:
[ $(identify -format "%[fx:w]x%[fx:h]\n" "$i") = 1920x1080 ]
-
O comando apropriado , que gira esses arquivos jpg em 90 graus:
convert "$i" -rotate 90 "${i%.jpg}_rotated.jpg"
E então a mágica do Bash funciona:)