가족 사진이 엄청나게 많지만 전체 해상도가 꼭 필요한 것은 아닙니다. 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
당신은 그것을 사용할 수 있습니다이미지 마술사 mogrify
800x800보다 큰 파일은 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