본문 바로가기

OnePIC (Android App)

[JPEG 공부] Piexif를 이용해 JPEG 메타 데이터 읽기

반응형
공식 문서

 

 

Functions — Piexif 1.1.x documentation

dump piexif.dump(exif_dict) Returns exif data as bytes. Parameters:exif_dict (dict) – Exif data({“0th”:0thIFD - dict, “Exif”:ExifIFD - dict, “GPS”:GPSIFD - dict, “Interop”:InteroperabilityIFD - dict, “1st”:1stIFD - dict, “thumbnail

piexif.readthedocs.io

 


piexif 함수 정리

 

piexif.load(filename)

→ metadata의 app1 데이터 읽기

# 파일 읽기 (load)
exif_dict = piexif.load("test.jpg")

# 읽은 정보 띄우기
for ifd_name in exif_dict:
	# 0th, exif, ... 어디 데이터인지 : ifd_name
    print("\n{0} IFD:".format(ifd_name))
    for key in exif_dict[ifd_name]:
    # 데이터 key: key
    # 데이터 value: exif_dict[ifd_name][key]
    
    try:
    	print(key, exif_dict[ifd_name][key][:10])
    except:
    	# key값이 typeError(int가 아님) -> 값 하나일 경우
        print(key, exif_dict[ifd_name][key])

 

return 값 - 딕셔너리 형태 (Exit dict)

  • 0th IFD
  • Exif IFD
  • GPS IFD
  • thumbnail (사진 섬네일 존재)

 

piexif.dump( exif_dict )

→ exif 데이터를 바이트로 반환 : exif 데이터 수정하고자 할 때 사용

#exif 데이터들 제작
zeroth_ifd = {
    piexif.ImageIFD.Make: u"Canon"
}
exif_ifd = {
    piexif.ExifIFD.DateTimeOriginal: u"2099:09:29 10:10:10"
}
gps_ifd = {
    piexif.GPSIFD.GPSDateStamp: u"1999:99:99 99:99:99",
}
first_ifd = {
    piexif.ImageIFD.Make: u"Canon",
}

# exif 데이터를 하나의 데이터로 묶기(dict 파일로)
exif_dict = {"0th":zeroth_ifd, "Exif":exif_ifd, "GPS":gps_ifd, "1st":first_ifd }
# exif 데이터를 바이트로 반환
exif_bytes = piexif.dump(exif_dict)

 

 

return 값 - bytes

  • bytes 값

 

piexif.insert(exif_bytes, filename)

→ JPEG 또는 WebP에 exif를 삽입합니다.

: exif_bytes = exif 수정 bytes / filename =파일 이름

# 수정하고자 만든 exif 데이터 바이트(자세한 설명은 위에)
exif_bytes = piexif.dump(exif_dict)

# 파일에 exif 넣기
piexif.insert(exif_bytes, "test.jpg")

 

piexif.remove(filename)

→ JPEG 또는 WebP에 exif를 삭제합니다.

piexif.remove("test.jpg")
반응형

'OnePIC (Android App)' 카테고리의 다른 글

[황금비] 개인정보처리방침  (0) 2023.05.05