使用python读取和修改图像exif元数据。

exif的Python项目详细描述


https://www.gitlab.com/TNThieding/exif/badges/master/build.svghttps://www.gitlab.com/tnthieding/exif/badges/master/coverage.svgDocumentation Status

使用python读取和修改图像exif元数据,无需任何第三方软件 依赖关系。例如,使用python脚本批处理图像元数据。

快速启动

使用pythonopen()内置函数打开带有exif元数据的图像。确保 已设置二进制模式标志。将此图像文件对象传递到exif.Image类:

>>> from exif import Image
>>> with open('grand_canyon.jpg', 'rb') as image_file:
...     my_image = Image(image_file)
...
>>> my_image.has_exif
True

使用pythondir()内置函数列出exif属性:

>>> dir(my_image)
['<unknown EXIF tag 59932>', '<unknown EXIF tag 59933>', '_exif_ifd_pointer', '_gps_ifd_pointer', '_segments', 'aperture
_value', 'brightness_value', 'color_space', 'components_configuration', 'compression', 'datetime', 'datetime_digitized',
 'datetime_original', 'exif_version', 'exposure_bias_value', 'exposure_mode', 'exposure_program', 'exposure_time', 'f_nu
mber', 'flash', 'flashpix_version', 'focal_length', 'focal_length_in_35mm_film', 'get_file', 'gps_altitude', 'gps_altitu
de_ref', 'gps_datestamp', 'gps_dest_bearing', 'gps_dest_bearing_ref', 'gps_horizontal_positioning_error', 'gps_img_direc
tion', 'gps_img_direction_ref', 'gps_latitude', 'gps_latitude_ref', 'gps_longitude', 'gps_longitude_ref', 'gps_speed', '
gps_speed_ref', 'gps_timestamp', 'jpeg_interchange_format', 'jpeg_interchange_format_length', 'lens_make', 'lens_model',
 'lens_specification', 'make', 'maker_note', 'metering_mode', 'model', 'orientation', 'photographic_sensitivity', 'pixel
_x_dimension', 'pixel_y_dimension', 'resolution_unit', 'scene_capture_type', 'scene_type', 'sensing_method', 'shutter_sp
eed_value', 'software', 'subject_area', 'subsec_time_digitized', 'subsec_time_original', 'white_balance', 'x_resolution',
'y_and_c_positioning', 'y_resolution']

使用python属性表示法访问exif元数据标记:

>>> # Read tags with Python "get" notation.
>>> my_image.gps_latitude
(36.0, 3.0, 11.08)
>>> my_image.gps_longitude
(112.0, 5.0, 4.18)
>>> my_image.model
'iPhone 7'
>>>
>>> # Modify tags with Python "set" notation.
>>> my_image.make = "Python"
>>>
>>> # Delete tags with Python "del" notation.
>>> del my_image.gps_latitude
>>> del my_image.gps_longitude

使用二进制的open()将带有修改过的exif元数据的图像写入图像文件 写入模式:

>>> with open('modified_image.jpg', 'wb') as new_image_file:
...     new_image_file.write(my_image.get_file())
...

有关访问exif标记(例如 使用索引/项语法或方法)。

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

推荐PyPI第三方库


热门话题
使用java从mysql备份特定的表   方法引用中的java错误返回类型:无法转换反应器。果心出版商单核反应堆。果心出版商单声道?扩展R>   java为什么我的e4应用程序插件不能被调用   swing为什么在java中JComboBox的ListCellRenderer上出现类强制转换异常?   java无直接方法<init>(Ljava/lang/reflect/method;IL2/Converter;)V类Lretrofit2/ParameterHandler$Body   java监控BufferedInputStream下载进度   java Springboot外部文件数据库配置   java Selenium WebDriver StaleElementReferenceException在使用click()时出现异常   在java中对传递给静态函数的参数的更改   为什么x==(x=y)和(x=y)=x不一样?   java我应该为我的应用程序创建一个片段吗?   java HashMap何时以及如何将bucket从链表转换为红黑树?   java文件读/写的正确顺序   在java中在哪里使用对象类?   javacom。数据税。驾驶员果心例外情况。InvalidQueryException:未配置的表架构\u键空间   Java如何在Arangodb上创建边?