EXIF 정보에서 날짜별로 이미지 정렬 및 이름 바꾸기

EXIF 정보에서 날짜별로 이미지 정렬 및 이름 바꾸기

내 사진 폴더가 엉망이 되었습니다. EXIF 정보에서 날짜순으로 정렬하고 날짜순으로 이름을 바꾸고 싶습니다(예: 001.jpg, 002.jpg 등).

Linux에서 이 작업을 어떻게 수행할 수 있나요? 이전에 몇 가지 기본적인 대량 처리 작업(변환 및 크기 조정 등)에 ImageMagick을 사용한 적이 있습니다. 이 작업에 ImageMagick을 사용할 수 있습니까?

답변1

당신이 사용할 수있는엑시프툴. 어떤 이유로 온라인 매뉴얼에는 나에게 필수적인 힌트를 제공하는 "예제 이름 바꾸기" 섹션이 포함되어 있지 않습니다.

JPG 전용 파일의 경우 다음 명령 호출이 작업을 수행해야 합니다.

exiftool -r '-FileName<CreateDate' -d '%Y-%m-%d/%H_%M_%S%%-c.%%le' <yourFolder>

설명:

  • -r재귀를위한 것입니다
  • '-FileName<CreateDate'exiftool에 EXIF ​​태그에 따라 파일 이름을 바꾸라고 지시합니다 CreateDate(다른 방법도 시도해 볼 수 있습니다 ModifyDate).
  • -d '%Y-%m-%d/%H_%M_%S%%-c.%%le'날짜 소스 " CreateDate"에서 파일 이름 문자열을 작성하는 방법을 알려줍니다. " %-c"는 파일 충돌 시 카운터를 추가하며 " %le"는 "소문자 파일 확장자"를 나타냅니다.
  • 메모-FileName<...: 여기에서는 파일 이름을 바꾸고 한 단계 내에서 다른 폴더로 이동하기 위해 " "를 사용했습니다 . 매뉴얼에서는 -Directory<...폴더 작업에 " " 구문을 사용해야 한다고 지적합니다 . 그래도 나에게는 이런 식으로 작동했습니다.

이 강력한 도구의 설명서를 읽는 데 시간을 투자해야 합니다. 어쩌면 더 짧은 방법이 있을 수도 있습니다 :D

답변2

이 무료 제품을 사용해 보세요:AmoK Exif 분류기.

답변3

가장 간단한 방법은 파일을 jbrout로 가져오는 것입니다. 그러면 (선택적으로) 모든 파일의 이름이 시간 지향적으로 변경될 수 있습니다. 또는 이름을 전혀 변경할 필요가 없다는 것을 알 수도 있습니다(그리고 jbrout로 충분합니다).

답변4

Debian Lenny에서 작동하게 하려면 다음을 시도해 보세요:

import pyexiv2, sys, os, time, datetime, random
dirname = sys.argv[1]
flist=os.listdir(dirname)
dic = dict()
for fname in flist:
    image = pyexiv2.Image(sys.argv[1]+'/'+fname) 
    #metadata = pyexiv2.ImageMetadata(sys.argv[1]+'/'+fname)
    #metadata.read()
    image.readMetadata() 
    tag = image['Exif.Image.DateTime']
    timestamp = int(time.mktime(tag.timetuple()))
    #print fname, ' ', tag.value, ' ', timestamp
    try:
    dic[timestamp] = fname
    except:
    print fname, ' not processed.'

keys = dic.keys()
keys.sort()
i = 0 
for k in keys:
    os.rename(sys.argv[1]+'/'+dic[k], sys.argv[1]+'/'+str(i)+'.jpg')
    i+=1

관련 정보