-
Python/mac/Exif data 수정코딩/Python 2022. 11. 22. 18:27728x90
from PIL import Image import piexif # exif data update import os img_extensions = ['.jpg', '.jpeg', '.png'] # image files having exif img = Image.open(dir_f) # image 객체 생성 # exif_dict = img.info.get('exif') # non exif -> 'None' f_exif = piexif.load(img.info['exif']) # exif 객체 생성 # exif data update img_ifd = {piexif.ImageIFD.DateTime: img_time} exif_ifd = { piexif.ExifIFD.DateTimeOriginal: img_time, piexif.ExifIFD.DateTimeDigitized: img_time } f_exif.update({ '0th':img_ifd, 'Exif':exif_ifd }) exif_bytes = piexif.dump(f_exif) # exif 저장 img.save(save_dir+'/'+file, exif=exif_bytes)
python에는 exif 데이터를 관리할 수 있는 여러 툴들이 있는데, 나는 piexif와 exif를 사용해봤다.
exif가 좀 더 사용하기 쉽고 이미지저장도 직접적으로 가능하지만 안정성에 약간의 문제가 있다고 느껴 piexif와 PIL의 Image를 사용해서 exif처리와 이미지 저장을 별도로 처리했다.
PIL의 Image는 이미지 객체와 이미지 저장
piexif는 exif data 추출과 저장
exif data는 '0th', 'Exif', 'GPS' 등 여러가지가 있는데, 나는 주로 날짜만 고치므로 '0th' 와 'Exif'만 처리한다.
{'0th':{'306':Date}}, {'Exif':{'36867':DateTimeOrginal, '36868':DateTimeDigitized}}
exif data의 업데이트는 exif 코드를 찾아서 직접적으로 해도 되지만, piexif에서 편리하게 입력이 가능하므로 수월하다.
exif data에 관한 자세한 정보는 아래 링크를 참조
http://www.cipa.jp/std/documents/e/DC-008-2012_E.pdf728x90'코딩 > Python' 카테고리의 다른 글
[Python/Turtle] 3. Methods/Turtle state & Settings for measurement (0) 2022.12.19 [Python/Turtle] 2. Methods/Turtle motion, Pen control, More drawing control, Using events, Compound shapes (0) 2022.12.19 [Python/Turtle] 1. 개요 (0) 2022.12.19 [Python/Tip] 컬렉션 순환 중 컬렉션 객체 변경 (0) 2022.12.19 [Python] Webscrapping (0) 2022.12.18