Como redimensionar lotes de muitas fotos - mas manter o timestamp intacto?

2

Eu tenho milhares de fotos em várias pastas. Quero redimensionar em lote para, por exemplo, 3000px na dimensão mais longa e mantenha o timestamp intacto.

Eu usei a ferramenta maravilhosamente simples Phatch para redimensionar todos os arquivos, mas os timestamps originais dos arquivos desapareceram e não há configuração em Phatch para evitar isso. Então agora eu tenho uma pasta mestre com todos os originais e outra pasta com os resultados Phatch - apenas no caso de isso ajudar.

  • Plataforma: Linux (Ubuntu)
  • Arquivos de origem: 2000 arquivos JPG em muitas subpastas
  • Alvo: redimensionado para 3000px (a menos que já seja menor que isso),
    • ou redimensionar arquivos no lugar
    • ou salvar como cópia usando a mesma estrutura de pastas
    • mantenha os nomes dos arquivos originais e os timestamps intactos

Eu não sou o suficiente de uma pessoa Linux (ainda) para saber quais ferramentas eu poderia usar (imagemagick? mogrify?) e como, mas eu vou aceitar todas as dicas!

    
por Torben Gundtofte-Bruun 27.06.2015 / 15:49

1 resposta

3

Você pode fazer algo assim, usando a conversão do pacote imagemagick , colocando novos arquivos em / tmp / new ou em um diretório semelhante:

mkdir /tmp/new
find . -iname '*.jpg' |
while read file
do convert -resize '>3000x>3000' "$file" /tmp/new/"$file"
   touch -r "$file" /tmp/new/"$file"
done

Se estiver satisfeito com o resultado, mova-o com:

rsync -a /tmp/new/ .
rm -fr /tmp/new
    
por 27.06.2015 / 16:10