Preservar o tempo de modificação da imagem com mogrify / imagemagick

2

Eu tenho uma enorme coleção de fotos de família que eu realmente não preciso de uma resolução completa. Eu quero usar mogrify mas eu tentei em um conjunto de imagens de exemplo e parece que ele define o tempo de modificação de arquivos para a hora atual. Existe alguma maneira de preservar o tempo de modificação / criação da imagem original (tanto para dados EXIF quanto para tempos de modificação de arquivos nativos do linux que você pode ver usando stat )?

    
por Deepak Mittal 17.03.2018 / 22:32

1 resposta

2

Você sempre pode fazer isso com um pouco de script:

exiftool  -q -r -ext jpg -if '
    $ImageWidth > 1000 ||
    $ImageHeight > 1000 and
      !print "$Directory/$Filename
exiftool  -q -r -ext jpg -if '
    $ImageWidth > 1000 ||
    $ImageHeight > 1000 and
      !print "$Directory/$Filename%pre%"' . |
  xargs -r0 sh -c '
    for file do
      mv -i "$file" "$file.back" &&
        convert -resize "1000x1000>" "$file.back" "$file" &&
        touch -r "$file.back" "$file"
    done' sh
"' . | xargs -r0 sh -c ' for file do mv -i "$file" "$file.back" && convert -resize "1000x1000>" "$file.back" "$file" && touch -r "$file.back" "$file" done' sh

Aqui, redimensione as imagens para que elas caibam em uma caixa delimitadora de 1000 x 1.000.

  • exiftool é usado para encontrar as imagens que precisam ser redimensionadas
  • convert redimensiona-os (não toca nas informações exif)
  • touch -r restaura o timestamp original do arquivo de backup
por 17.03.2018 / 23:13