생성 날짜를 변경하지 않고 Mac OS X에서 이미지 크기를 일괄 조정합니다.

생성 날짜를 변경하지 않고 Mac OS X에서 이미지 크기를 일괄 조정합니다.

크기를 조정해야 할 이미지가 많은데 생성 날짜를 변경하고 싶지 않습니다. 나는 Automator, Photoshop, Preview를 사용해 보았지만 이것을 사용할 때마다 소프트웨어에서 내 사진의 생성 날짜를 변경했습니다.

누군가 아이디어가 있다면?

답변1

크기를 조정해야 할 이미지가 많은데 생성 날짜를 변경하고 싶지 않습니다. 저는 Automator, Photoshop, Preview를 사용해 보았는데 이것을 사용할 때마다 소프트웨어에서 사진 생성 날짜를 변경했습니다.

생성일과 수정일을 혼동하고 계시나요? 왜냐하면 궁극적으로 파일이 수정되더라도 파일 생성 날짜는 절대로 변경되어서는 안 되기 때문입니다. 그것이 수정 날짜의 목적입니다.

이미지 크기를 조정하는 데 어떤 방법을 사용하고 있는지 잘 모르겠지만, 이미지 디렉터리를 가져온 다음 원본 이미지를 기반으로 파생 이미지를 생성하도록 스크립트에 지시하는 경우 새로 생성된 파생 이미지는 새로운 생성 날짜는 단순히 어떤 방식으로든 처리된 원본의 새 복사본이기 때문입니다.

그러나 처리하고 기본적으로 덮어쓰려는 이미지로 가득 찬 디렉토리가 있다고 가정하면 뛰어난 명령줄 도구를 설치하고 사용하는 것이 좋습니다.이미지매직. 공식 바이너리를 통해 Mac OS X용 ImageMagick을 설치하는 것이 불편하다면(잘 작동하지만 명령줄 작업을 능숙하게 수행하지 못하면 혼란스러울 수 있음)멋진 Mac OS X 패키지 설치 프로그램이 Cactuslab에서 제공됩니다.. 또는 다음을 통해 ImageMagick을 설치할 수도 있습니다.홈브류ImageMagick을 설치한 다음 brew install imagemagick명령줄에서 실행하여 ImageMagick을 설치합니다.

일단 설치되면 다음과 같은 간단한 Bash 스크립트를 실행할 수 있습니다.findImageMagick과 함께convert이미지를 처리하는 명령 도구:

find -E 'Desktop/Pics' -type f -iregex '.*\.(JPG|JPEG|PNG|TIF|TIFF)$' |\
  while read FULL_IMAGE_PATH
  do
    convert -density 72 -units PixelsPerInch -resize "1500x1500>" -quality 90 "${FULL_IMAGE_PATH}" "${FULL_IMAGE_PATH}"
  done

이 예에서 스크립트는 Pics/작업 사용자의 데스크탑에서 디렉토리를 찾은 다음 Pics/JPG, JPEG, PNG, TIF 또는 TIFF 확장자가 연결된 모든 파일을 검색합니다. 검색에서는 대소문자를 구분하지 않으므로 소문자 버전도 검색됩니다. 이미지가 발견되면 이미지의 DPI를 72로 변환하고 PPI(인치당 픽셀) 단위를 사용하여 변환하며, 이미지가 다음보다 큰 경우 이미지의 가장 긴 면을 기준으로 너비/높이 1500x1500픽셀로 이미지 크기를 조정합니다. 가장 긴 쪽이 1500픽셀입니다. 화질도 90으로 설정했습니다.

저는 이 간단한 Bash 스크립트를 사용하여 상대적으로 고해상도이면서 웹에서도 사용할 수 있는 이미지를 처리하고 싶습니다. 그러나 필요에 맞게 해당 명령을 조정하고 조정할 수 있습니다. 진짜 마법은 find디렉터리 트리를 순회하고 이미지를 제자리에 덮어쓰는 논리입니다. 이렇게 하면 생성 날짜는 유지되고 파일에서 수정 날짜만 변경됩니다.

답변2

왜 내 사진 중 일부가 날짜 보존 없이 변환되었는지 알아내려고 몇 시간을 보냈는데, 를 사용하더라도 mogrify -define preserve-timestamp=true내가 찾은 내용은 다음과 같습니다.

보고서

"생년월일" 파일은 그 중요성을 갖고 있는 것 같습니다(특히 Apple Photos의 경우). 다음을 통해 액세스할 수 stat -x pic.jpg있으며 다음과 같은 결과를 얻게 됩니다.

  File: "pic.jpg"
  Size: 186321       FileType: Regular File
Access: Thu Apr 11 09:19:19 2024
Modify: Tue Jan  5 09:14:41 2021
Change: Thu Apr 11 09:19:18 2024
 Birth: Mon Jan  4 16:40:00 2021 ← here is the important one !

도구

stat

내가 말했듯이 생년월일을 보존하지 않는 것 같아서 생년월일을 가져오는 명령을 preserve-timestamp사용했습니다 .stat

$ stat -f "%SB" -t "%Y:%m:%d %T%z" pic.jpg
2021:01:04 16:40:00+0100 ← to get a clean birth date
$ stat -f "%Sm" -t "%Y:%m:%d %T%z" pic.jpg
2021:01:05 09:14:41+0100 ← to get a clean modify date

exiftool

exiftool변환된 파일에 저장하려면 다음을 수행하세요 .

exiftool "-FileCreateDate=2021:01:04 16:40:00+0100" "-FileModifyDate= 2021:01:05 09:14:41+0100" pic.heic

한 줄짜리 결과

다음은 Apple Photos(파일 이름에 대한 필터링에 "jpg"가 포함된 스마트 폴더에서)에서 내보낸 후 jpg로 변환하는 예입니다 .heic

for i in *.jpg ; 
do convert $i "${i%.*}.heic" 
&& exiftool -q "-FileCreateDate=$(stat -f "%SB" -t "%Y:%m:%d %T%z" "$i")" "-FileModifyDate=$(stat -f "%Sm" -t "%Y:%m:%d %T%z" "$i")" "${i%.*}.heic" ; 
done

꽤 느리지만(사진 1700장의 경우 30분 이상 / 1,5 Go…), 정확히 동일한 생년월일로(크기가 1,5Go에서 530Mo로 감소) 원하는 결과를 얻었습니다. Apple Photo에 사진을 추가하면 heic올바른 위치에 배치됩니다. 이것이 도움이 되기를 바랍니다!

관련 정보