Python使用pyexiv2库操作图片的实例教程

pyexiv2是exiv2库的Python绑定,而exiv2是用于操作EXIF、IPTC和XMP图片元数据的C++程序库。

关于pyexiv2,请查看其官方网站:http://tilloy.net/dev/pyexiv2/

目前pyexiv2貌似还没支持Python3,本文是用的 Python2.7 做的实验。

在Ubuntu中安装pyexiv2的命令为: apt-get install python-pyexiv2

在Python中使用pyexiv2主要需要注意一下几点即可:
1. import pyexiv2
2. 获取metadata对象:pyexiv2.ImageMetadata(image-file)
3. metadata.read() 用于读取图片的元数据
4. metadata.write() 用于将图片的元数据写回去
5. metadata[key] = value 可以创建或者修改原数据中的某个键值对

使用pyexiv2的示例代码如下:

#!/usr/bin/python2.7
# just a sample for using python-pyexiv2 Library
# pyexiv2 is a Python binding to exiv2,
#        the C++ library for manipulation of EXIF, IPTC and XMP image metadata.
 
import pyexiv2
import os
 
path = '/home/master/Pictures/wall-paper'
for file in os.listdir(path):
    print 'file:' + os.path.join(path,file)
    print '--------------------------------------------------------------'
    metadata = pyexiv2.ImageMetadata(os.path.join(path,file))
    metadata.read()
    print metadata['Exif.Image.DateTime'].value.strftime('%A %d %B %Y, %H:%M:%S')
    print metadata['Exif.Image.ImageDescription'].value
    print metadata['Exif.Image.Software'].value
    print metadata['Exif.Image.ExifTag'].value
    key = 'Exif.Photo.UserComment'
    value = 'A comment.'
    metadata[key] = pyexiv2.ExifTag(key, value)
    # metadata[key] = value    # this a shotcut method as the previous line.
    metadata.write()
    print metadata[key].value
    metadata[key].value ='A new comment.'
    metadata.write()
    print metadata[key].value
    print '--------------------------------------------------------------'

在我的一个系统上运行结果如下:
master@jay-linux:~/workspace/python$ ./pyexiv2-sample.py
file:/home/master/Pictures/wall-paper/855402454225855163.jpg
————————————————————–
Sunday 17 April 2011, 23:59:29
OLYMPUS DIGITAL CAMERA
Adobe Photoshop CS4 Windows
992
A comment.
A new comment
————————————————————–
file:/home/master/Pictures/wall-paper/723672165124933357.jpg
————————————————————–
Sunday 17 April 2011, 23:55:11
OLYMPUS DIGITAL CAMERA
Adobe Photoshop CS4 Windows
992
A comment.
A new comment
————————————————————–

另外,还可以尝试一下PIL(Python Imaging Library),不过貌似PIL的功能没有pyexiv2的强大。

时间: 2024-11-08 22:20:29

Python使用pyexiv2库操作图片的实例教程的相关文章

Python使用cookielib模块操作cookie的实例教程_python

cookielib是一个自动处理cookies的模块,如果我们在使用爬虫等技术的时候需要保存cookie,那么cookielib会让你事半功倍!他最常见的搭档模块就是python下的urllib和request. 核心类 1.Cookie该类实现了Netscape and RFC 2965 cookies定义的cookie标准,基本可以理解为某一条cookie数据. 部分代码如下,很多属性是不是很眼熟? self.domain_initial_dot = domain_initial_dot s

利用Python实现简单的相似图片搜索的教程

  利用Python实现简单的相似图片搜索的教程         这篇文章主要介绍了利用Python实现简单的相似图片搜索的教程,文中的示例主要在一个图片指纹数据库中实现,需要的朋友可以参考下 大概五年前吧,我那时还在为一家约会网站做开发工作.他们是早期创业公司,但他们也开始拥有了一些稳定用户量.不像其他约会网站,这家公司向来以洁身自好为主要市场形象.它不是一个供你鬼混的网站--是让你能找到忠实伴侣的地方. 由于投入了数以百万计的风险资本(在US大萧条之前),他们关于真爱并找寻灵魂伴侣的在线广告

Python中使用PIL库实现图片高斯模糊实例_python

一.安装PIL PIL是Python Imaging Library简称,用于处理图片.PIL中已经有图片高斯模糊处理类,但有个bug(目前最新的1.1.7bug还存在),就是模糊半径写死的是2,不能设置.在源码ImageFilter.py的第160行: 所以,我们在这里自己改一下就OK了. 项目地址:http://www.pythonware.com/products/pil/ 二.修改后的代码 代码如下: 复制代码 代码如下: #-*- coding: utf-8 -*- from PIL

Python MySQLdb模块连接操作mysql数据库实例_python

mysql是一个优秀的开源数据库,它现在的应用非常的广泛,因此很有必要简单的介绍一下用python操作mysql数据库的方法.python操作数据库需要安装一个第三方的模块,在http://mysql-python.sourceforge.net/有下载和文档. 由于python的数据库模块有专门的数据库模块的规范,所以,其实不管使用哪种数据库的方法都大同小异的,这里就给出一段示范的代码: #-*- encoding: gb2312 -*- import os, sys, string impo

python获取beautifulphoto随机某图片代码实例_python

Beautiful Photo!: http://www.beautifulphoto.net/ 复制代码 代码如下: import urllib2import re _random_url = r'http://www.beautifulphoto.net/plugin/RndArticle/'_img_patt = re.compile(r'<img src="http://www\.beautifulphoto\.net/upload/(\d+)\.jpg" />')

利用Python实现简单的相似图片搜索的教程_python

大概五年前吧,我那时还在为一家约会网站做开发工作.他们是早期创业公司,但他们也开始拥有了一些稳定用户量.不像其他约会网站,这家公司向来以洁身自好为主要市场形象.它不是一个供你鬼混的网站--是让你能找到忠实伴侣的地方. 由于投入了数以百万计的风险资本(在US大萧条之前),他们关于真爱并找寻灵魂伴侣的在线广告势如破竹.Forbes(福布斯,美国著名财经杂志)采访了他们.全国性电视节目也对他们进行了专访.早期的成功促成了事业起步时让人垂涎的指数级增长现象--他们的用户数量以每月加倍的速度增长.对他们而

jQuery操作cookie方法实例教程_jquery

本文实例讲述了jQuery操作cookie的方法.分享给大家供大家参考.具体方法如下: 先来看看jq.cookie的aip 写入cookie 复制代码 代码如下: $.cookie("this-cookie","this-value",{     expires:10,//有效日期     path:"/",//cookie的路 径     domanin:    //cookie的域名     secure:true //true,cookie

Python中optionParser模块的使用方法实例教程_python

本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值.分享给大家供大家参考之用.具体分析如下: 一般来说,Python中有两个内建的模块用于处理命令行参数: 一个是 getopt,<Deep in python>一书中也有提到,只能简单处理 命令行参数: 另一个是 optparse,它功能强大,而且易于使用,可以方便地生成标准的.符合Unix/Posix 规范的命令行说明. 示例如下: from optparse impo

python的类变量和成员变量用法实例教程_python

本文实例形式讲解了python的类变量和成员变量用法,对于Python程序设计有一定的参考价值.分享给大家供大家参考.具体如下: 先看看下面这段代码: class TestClass(object): val1 = 100 def __init__(self): self.val2 = 200 def fcn(self,val = 400): val3 = 300 self.val4 = val self.val5 = 500 if __name__ == '__main__': inst =