이미지 수정 시간을 보존하려면 mogrify/imagemagick을 사용하세요.

이미지 수정 시간을 보존하려면 mogrify/imagemagick을 사용하세요.

가족 사진이 엄청나게 많지만 전체 해상도가 꼭 필요한 것은 아닙니다. mogrify를 사용하고 싶은데 샘플 이미지 세트에 사용해 보았는데 파일 수정 시간이 현재 시간으로 설정되어 있는 것 같습니다. 원본 이미지의 수정/생성 시간을 보존할 수 있는 방법이 있나요 stat?(EXIF 데이터와 Linux의 기본 파일 수정 시간은 보기를 사용할 수 있습니다.)

답변1

다음 스크립트를 통해 언제든지 이 작업을 수행할 수 있습니다.

exiftool  -q -r -ext jpg -if '
    $ImageWidth > 1000 ||
    $ImageHeight > 1000 and
      !print "$Directory/$Filename\0"' . |
  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

이미지는 1000x1000 경계 상자에 맞도록 크기가 조정됩니다.

  • exiftool크기를 조정해야 하는 이미지를 찾는 데 사용됩니다.
  • convert크기를 조정하세요(Exif 정보에는 영향을 주지 않음).
  • touch -r백업 파일에서 원본 타임스탬프 복원

답변2

당신은 그것을 사용할 수 있습니다이미지 마술사 mogrify800x800보다 큰 파일은 800x800에 맞게 해상도를 줄이고(크기 조정) 다음과 같이 타임스탬프를 유지합니다.

magick mogrify -define preserve-timestamp=true -resize '800x800>' *.jpg

원본 파일을 덮어쓰지 않고 먼저 테스트하고 대신 크기가 조정된 파일을 라는 새 디렉터리에 쓰는 경우 RESIZED다음을 수행할 수 있습니다.

mkdir RESIZED
magick mogrify -path RESIZED -define preserve-timestamp=true -resize '800x800>' *.jpg

답변3

잘 모르겠습니다이미지 마술사, 하지만 GraphicsMagick이에 대한 기본 지원.

$ ls -lh family_photo.jpg 
-rw-r--r-- 1 justin justin 901K Sep  9  2007 family_photo.jpg
$ gm mogrify -preserve-timestamp -rotate -90 family_photo.jpg 
$ ls -lh family_photo.jpg 
-rw-r--r-- 1 justin justin 681K Sep  9  2007 family_photo.jpg

관련 정보