EXIF.py

提取 Exif 元数据的 Python 模块
授权协议 BSD-3
开发语言 Python
所属分类 程序开发、 图形/图像处理
软件类型 开源软件
地区 不详
投 递 者 蔚桐
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

EXIF.py 是一个易于使用的 Python 模块,可以从图像文件中提取 Exif 元数据。支持的格式包括:TIFF、JPEG、Webp 和 HEIC。

兼容性

EXIF.py 在以下 Python 版本上经过测试并得到官方支持:

  • 3.5
  • 3.6
  • 3.7
  • 3.8

从 version 开始3.0.0,Python2 兼容性被完全删除。

安装

PyPI

推荐的安装方法是通过 PyPI 包,因为它可以轻松保持最新状态:

$ pip install exifread

用法

命令行

一些例子:

$ EXIF.py image1.jpg
$ EXIF.py -dc image1.jpg image2.tiff
$ find ~/Pictures -name "*.jpg" -o -name "*.tiff" | xargs EXIF.py

显示命令行选项:

$ EXIF.py -h

Python 脚本

import exifread
# Open image file for reading (must be in binary mode)
f = open(path_name, 'rb')
# Return Exif tags 
tags = exifread.process_file(f)

注意:要在您的项目中将此库用作 Git 子模块,您应该:

from  import exifread

返回的标签将是一个字典,将 Exif 标签的名称映射到它们在 path_name 命名的文件中的值。可以根据需要处理标签,特别是可以使用以下命令遍历所有标签:

for tag in tags.keys():
    if tag not in ('JPEGThumbnail', 'TIFFThumbnail', 'Filename', 'EXIF MakerNote'):
        print "Key: %s, value %s" % (tag, tags[tag])
 相关资料
  • 问题内容: 我想使用php从图片中提取GPS EXIF标签。我正在使用返回所有标签+数据的数组的: 我不知道如何解释46/1 5403/100和0/1?46可能是46°,但是其余的尤其是0/1呢? 这个结构是关于什么的? 如何将它们转换为“标准”(例如,维基百科的46°56′48″ N 7°26′39″ E)?我想将这些坐标传递给Google Maps API,以在地图上显示图片位置! 问题答案:

  • 问题内容: 我正在使用PIL。如何将图片的EXIF数据转换为字典? 问题答案: 您可以使用PIL映像的受保护方法。 这应该给您一个由EXIF数字标签索引的字典。如果您希望字典由实际的EXIF标记名称字符串索引,请尝试以下操作:

  • 问题内容: 背景:我正在为通讯程序编写一个相机应用程序。我无法随时将捕获的图像保存到永久磁盘。相机必须支持所有方向。我的实现是使用熟悉的Surfaceview示例。我使用Display类来检测方向并相应地旋转相机。在takePicture jpeg回调中,我从byte[]构造了一个位图,以解决我遇到的某些长宽比问题 问题描述:在某些设备上,以ROTATION_270(设备顺时针旋转90度)拍摄的构

  • 除了内容,Tika还从文件中提取元数据。 元数据只不过是随文件提供的附加信息。 如果我们考虑音频文件,则艺术家姓名,专辑名称,标题属于元数据。 XMP标准 可扩展元数据平台(XMP)是用于处理和存储与文件内容相关的信息的标准。 它由Adobe Systems Inc.创建。 XMP提供了定义,创建和处理metadata 。 您可以将此标准嵌入到多种文件格式中,例如PDF , JPEG , JPEG

  • 问题内容: 我搜索了从图片文件中获取EXIF数据,然后将其写回Swift中。但是我只能找到针对不同语言的预定义库。 我还找到了对“ CFDictionaryGetValue”的引用,但是我需要哪些键来获取数据?我该怎么写呢? 问题答案: 我正在用它来从图像文件中 获取 EXIF信息: 它为您提供了一个字典,其中包含各种信息,例如颜色配置文件-EXIF信息专门位于中。

  • 问题内容: 我正在尝试在python 2.7中编辑/修改现有的元数据。更具体而言,我在我的月历中有GPS坐标,但是海拔字段不正确。有办法改变吗? 我看过了 ,但似乎找不到修改现有字段的方法。 有没有人设法做到这一点?听起来这很简单,但我似乎无法解决。 干杯戴夫 问题答案: (550,1)%某些值以小数格式保存。这意味着550m(51,2)将为25.5m。 将高度设置为140m