从tiff和jpeg文件中读取exif元数据。

ExifRead的Python项目详细描述


https://pypip.in/v/ExifRead/badge.pnghttps://pypip.in/d/ExifRead/badge.pnghttps://travis-ci.org/ianare/exif-py.png

易于使用Python模块从TIFF和JPEG文件中提取ExIF元数据。

原著作者吉恩·卡什和蒂埃里·布希。

安装

Pypi

建议的过程是安装PyPI package, 因为它可以轻松地保持最新状态:

$ pip install exifread

有关详细信息,请参见pip documentation

存档

从项目的releases page下载存档。

尽情享受吧。

兼容性

exif.py在以下python版本上进行测试:

  • 2.6
  • 2.7
  • 3.2
  • 3.3
  • 3.4

用法

命令行

一些示例:

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

显示命令行选项:

$ EXIF.py

python脚本

import exifread
# Open image file for reading (binary mode)
f = open(path_name, 'rb')

# Return Exif tags
tags = exifread.process_file(f)

注意:若要在项目中将此库用作git子模块,应:

from <submodule_folder> import exifread
<>返回标记将是一个映射EXIF标签的名称到它们的字典。 按路径名命名的文件中的值。 您可以根据需要处理标记。特别是,您可以使用:

for tag in tags.keys():
    if tag not in ('JPEGThumbnail', 'TIFFThumbnail', 'Filename', 'EXIF MakerNote'):
        print "Key: %s, value %s" % (tag, tags[tag])

使用if语句可以避免打印出一些可能很长或很无聊的标记。

标签字典将包括所有常用的ExIF标记的键,并且还包括用于 一些相机用的笔记本,我们有很好的规格。

请注意,字典键是ifd名称后跟标记名称。例如:

'EXIF DateTimeOriginal', 'Image Orientation', 'MakerNote FocusMode'

标签说明

标签分为以下主要类别:

  • {TT2} $:与主图像相关的信息(EXIF数据的IFD0)。
  • {TT3}$:与缩略图相关的信息,如果存在(EXIF数据的IFD1)。
  • {TT4} $:EXIF信息(子IFD)。
  • GPS:GPS信息(子IFD)。
  • Interoperability:互操作性信息(子ifd)。
  • MakerNote:制造商特定信息。这些标签没有官方发布的参考资料。

处理选项

这些选项既可以在命令行模式下使用,也可以在脚本中使用。

更快的处理速度

不要处理makernote标记,不要提取缩略图(如果有的话)。

传递-q--quick命令行参数,或作为:

tags = exifread.process_file(f, details=False)

在给定的标记处停止

在检索到指定标记后停止处理文件。

传递-t TAG--stop-tag TAG参数,或作为:

tags = exifread.process_file(f, stop_tag='TAG')

其中TAG是有效的标记名,例如'DateTimeOriginal'

以上两个选项对于加快处理大量文件非常有用。

严格处理

在无效标记上返回错误,而不是静默忽略。

传递-s--strict参数,或作为:

tags = exifread.process_file(f, strict=True)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Cassandra DB的javascript查询结果   java定时器任务调度   java在TLS上实现LDAP   为什么在浏览器中滚动会使java小程序闪烁?   未使用轮询器和serviceactivator提取java pubsub消息   java风暴多线程问题   java计算平均成绩   java将字符串添加到另一个类的数组列表中   文件Java路径如何转换为例如InputStream   java更改JComboBox的字体颜色   java inthttp:具有可轮询请求通道的inboundgateway   使用继承在Java中运行swing Base和扩展windows   java ivysettings。xml:添加本地maven路径   java如何将参数自定义视图传递给activity类   java延迟加载无法在Hibernate中使用一对一映射   当文件以“file:/”开头时,Java无法识别该文件   需要java正则表达式帮助,使用反斜杠   片段中的java GWT参数