파이썬을위한 좋은 exif (Exchangeable image file format) 조작 라이브러리를 찾고 있습니다. 처리 속도보다 유연성 (예 : 공급자의 독점 태그 검색 기능)을 선호합니다. 무엇을 제안 하시겠습니까?
MakerNote
. 이 EXIF 태그에서 카메라 제조업체는 귀중한 정보를 담고있는 자체 태그를 추가합니다. 따라서 아래 답변에서 대부분의 라이브러리에 대한 기본 태그 만 얻을 수 있습니다.
파이썬을위한 좋은 exif (Exchangeable image file format) 조작 라이브러리를 찾고 있습니다. 처리 속도보다 유연성 (예 : 공급자의 독점 태그 검색 기능)을 선호합니다. 무엇을 제안 하시겠습니까?
MakerNote
. 이 EXIF 태그에서 카메라 제조업체는 귀중한 정보를 담고있는 자체 태그를 추가합니다. 따라서 아래 답변에서 대부분의 라이브러리에 대한 기본 태그 만 얻을 수 있습니다.
답변:
tiff 및 jpeg 파일에서 EXIF 데이터를 추출하는 Python 라이브러리. 사용하기 매우 쉬움-$ ./EXIF.py image.jpg
또는 Python Imaging Library (PIL) :
Python Imaging Library (PIL)는 Python 인터프리터에 이미지 처리 기능을 추가합니다. 이 라이브러리는 다양한 파일 형식을 지원하며 강력한 이미지 처리 및 그래픽 기능을 제공합니다.
적절한 이름의 pyexif도 있습니다 : http://pyexif.sourceforge.net/
pyexif python 라이브러리 및 도구는이를 포함하는 Jpeg 및 Tiff 파일에서 EXIF 정보를 추출하는 것을 목표로합니다. 이 정보는 일반적으로 디지털 카메라, 디지털 필름 스캐너 등과 같은 디지털 이미징 장치를 사용하여 만든 이미지에 포함됩니다.
그러나 pyexif가 한동안 업데이트되지 않은 것 같습니다. 그들의은 EXIF-평을 조사하기 위해 트릭을 수행하지 않을 경우 자신의 소스 포지 페이지가 갖고있는 것 같아요 당신이 아마 먼저 하나를 시도해야한다, 그래서 그들은 권장 몇 가지 최근에이 활동을하지만별로. 마지막으로 PIL을 사용하면 다음과 같이 할 수 있습니다.
from PIL import Image
from PIL.ExifTags import TAGS
def get_exif(fn):
ret = {}
i = Image.open(fn)
info = i._getexif()
for tag, value in info.items():
decoded = TAGS.get(tag, tag)
ret[decoded] = value
return ret
면책 조항 :
실제로 어떤 것이 가장 좋은지 모르겠습니다. 이것은 Google과 함께 할 수 있었던 것입니다. :)
pip
! github.com/python-pillow/Pillow
나는 최근에 pyexiv2를 직접 사용 하고 있으며 내 요구에 아주 잘 맞는 것 같습니다. 아마도 그것은 당신에게도 적합 할 것입니다.
Exiv2 (exiv2 : http://exiv2.org/ )는 많은 이미지 유형 (JPEG, PNG, TIFF 및 다양한 원시 형식)에 대한 메타 데이터 읽기 및 쓰기를 지원하고 표준 (Xmp, IPTC)을 이해하는 성숙한 오픈 소스 C ++ 라이브러리입니다. 및 Exif) 및 비표준 메타 데이터 ( "Makernotes")가 있으며 여러 플랫폼 (Windows, Linux 및 일부 작업이있는 Mac)에서 실행됩니다.
exiv2에 대한 Python 바인딩은 다음과 같습니다.
pyexiv2의 한 가지 장점은 Python 2.7에 사용할 수있는 Windows 빌드가 있다는 것입니다. gexiv2에 대한 Windows 빌드 요청은 다음과 같습니다. https://bugzilla.gnome.org/show_bug.cgi?id=712441
exiv2 및 바인딩은 모두 오픈 소스 (GPL)입니다.
pyexiv2
분기되었습니다 : py3exiv2.tuxfamily.org .
이 기사에서는 순수 Python을 사용하여 EXIF 메타 데이터를 작성하는 (읽기만하는 것이 아니라) Python 모듈을 설명합니다. 분명히 PIL, pyexif 또는 EXIF-py는 EXIF 작성을 지원하지 않습니다. pyexiv2는 최첨단이며 플랫폼에 따라 다릅니다.
PIL 사용 :)
import os,sys
from PIL import Image
from PIL.ExifTags import TAGS
if __name__ == '__main__':
for (k,v) in Image.open(sys.argv[1])._getexif().iteritems():
print '%s = %s' % (TAGS.get(k), v)
os.system('pause')
에서 페이지 http://redmine.yorba.org/projects/gexiv2/wiki는 (이되었다 https://wiki.gnome.org/Projects/gexiv2가 읽는) 지금 :
이것은 Python 2 또는 3에서 똑같이 잘 작동하므로 GExiv2는 Python 2 만 지원하는 pyexiv2의 훌륭한 대체품입니다.
따라서 이제 Python2와 Python3 모두 GExiv2에서 지원됩니다.
좋은 소식.
http://www.emilas.com/jpeg/ 에서 Gheorghe Milas의 jpeg.py 라이브러리를 볼 수도 있습니다 . . 이는 "JPEG EXIF, IPTC 및 COM 메타 데이터를 구문 분석하고 읽고 쓰는 Python 라이브러리"입니다.
단점은 DynDNS를 통해 동적 IP에서 자신의 도메인을 호스팅하는 것처럼 보이므로 항상 사용할 수있는 것은 아닙니다.
어떻게 든 위의 Paolo의 코드로 _getexif에 대한 attributeError가 발생합니다. Python 2.6.6 및 PIL 1.1.7을 사용하고 있습니다. _getexif는 이제 더 이상 사용되지 않습니까 ??
나를 위해 일한 작은 수정이 있습니다.
from PIL import Image
from PIL.ExifTags import TAGS
def get_exif(fn):
ret = {}
i = Image.open(fn)
# info = i._getexif()
info = i.tag.tags
for tag, value in info.items():
decoded = TAGS.get(tag, tag)
ret[decoded] = value
return ret
저는 PIL의 코드를 기반으로하는 저만의 작은 라이브러리를 작성하기 시작했습니다. 여기에서 확인하십시오 .
나는 http://www.sno.phy.queensu.ca/~phil/exiftool/ 주위에 내 자신의 래퍼를 사용하고 있습니다 -그 이유는 그것이 매우 완전하고 개발이 매우 활동 적이기 때문입니다. 그리고 거의 모든 이미지 형식을 지원할 수 없다는 것은 그것이 필요한 프로젝트의 절대적인 돋보입니다.
물론 단점은 파이썬이 아니기 때문에 저처럼 하위 프로세스 호출을 사용해야한다는 것입니다.
에 PIL 및 EXIF.py 사용의 예 있습니다 ASPN은