问题标签 [pyexiv2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
649 浏览

python - 将修改后的主题数据写入 XMP 文件失败(使用 pyexiv2)

我的照片编辑器搞砸了我许多照片的标签。我将此作为开始熟悉 Python 并编写脚本来清理标签的最后一击。我发现 pyexiv2 可能会派上用场,我尝试基本上遵循教程(http://tilloy.net/dev/pyexiv2/tutorial.html)。

我正在尝试做的事情:

  • 从 XMP 文件中解析原始数据(注意:我使用 sidecar 文件而不是直接将元数据写入照片文件)。
  • 从 Xmp.dc.subject 中读取原始标签(并将它们打印到标准输出以进行调试)
  • 将标签更改为新值(并用于调试打印新值)
  • 将新数据写回 XMP 文件

在我在编辑器中检查 XMP 文件之前,情况看起来相当不错。更改的值只是没有显示出来。但是,XMP 文件会获得一个新的时间戳,如果我将 XMP 文件设为只读,则会收到一条错误消息。所以似乎有些东西被写入文件。只是数据不正确。

这是一个显示我的问题的最小脚本:

它的输出是:

但是 XMP 文件的相关部分仍然是这样的:

那么我必须做什么才能将更改的元数据写入 XMP 文件?

请注意,我是 Python 的完全初学者(但不是编程的初学者),所以这个问题可能是由我不知道的一些琐碎的事情引起的。我在 Debian Linux 上运行 Python 2.7.6。

0 投票
1 回答
734 浏览

python - Python 中的 EXIF 信息 - libexif

我一直在使用 pyexiv2 从 python 中的 JPEG 文件中读取 exif 信息,并注意到 exiv2 报告的一个标签 - ExposureTime - 与另一个 exif 库 libexif 不同。

我尝试过的任何基于 exiv2 的实用程序都会将曝光时间标签简化为“有理数”,例如 0/1、0 或类似值。基于 libexif 的实用程序(特别是工具“exif”)将报告更详细的“1/-21474836 秒”。对于同一个标签,在同一个图像中。

首先我想了解:什么可以解释这种差异?我假设两者中的后者是正确的。

其次,假设libexif报告的更详细的标签是正确的,我希望能够在Python中获得这个值,据我所知,使用我遇到的任何EXIF工具都是不可能的(例如 pyexiv2)。有没有我没有考虑的工具或方法?

如先前回答的问题中所述,我偶然发现了一种潜在的解决方案,即在python中使用带有ctypes的libexif C库-尽管我找不到如何做到这一点的示例。

任何帮助是极大的赞赏。谢谢!

0 投票
1 回答
76 浏览

python - 具有多处理功能的 Pyexiv2

我正在使用 OpenCV 对图像执行一批失真校正。不幸的是,输出丢失了 exif 元数据。所以我用 Pyexiv2 把它带回来。

但是,当使用多处理 pyexiv2 运行整个代码时,在复制元数据时会不断崩溃。pyexiv2 可能在 OpenCV 仍在输出文件克隆元数据时开始对文件克隆元数据进行操作。解决 pyexiv2/OpenCV 并发访问问题的最佳程序是什么?并行函数如下:

0 投票
1 回答
1754 浏览

image - Exif 图片方向

我有一堆地理标记图片,我正在使用 pyexiv2 在 python 中访问它们。它工作得很好,除了我不明白“GPSImgDirection”的价值是什么。基本上,这是两个很大的数字,例如:

2147483647/8613474

这意味着什么?我认为这是一种“理性”的数据类型。这意味着什么?我怎样才能把这个数字变成人们可以理解的东西,比如“北方以东 5 度”?

谢谢!亚历克斯

0 投票
1 回答
766 浏览

python - 在 virtualenv 中安装 python 包而不使用 pip 或 easy_install

我正在尝试在 virtualenv 中安装pyexiv2。不幸的是,它是一个旧包,pip 和 easy_install 似乎都不支持它。通过在 pyexiv 下载站点上运行 Windows 安装程序,我将它安装在我的非虚拟环境 python 上就好了,但我看不到将它安装为虚拟环境的简单方法。任何人都可以帮忙吗?

非常感谢!亚历克斯

0 投票
1 回答
402 浏览

python - pyexiv2 - 空 XMP 和 ITPC 标签?

我正在尝试在 Windows 7 中使用 Python 2.7 和 pyexiv2 操作图像的 exif、XMP 和 ITPC 标签。我可以获得 exif 标签列表,但由于某种原因,XMP 和 ITPC 列表返回为空,即使这些标签存在于我的测试图像中(至少根据此处提供的映射。其他人遇到此问题并能够解决它?非常感谢您的任何反馈!

代码:

0 投票
1 回答
712 浏览

perl - 使用 ExifTool 将日期批量更改为当前日期

我有一堆不同创建日期的图像。我想使用批处理文件(Windows)将它们全部标准化为给定日期(比如今天的日期)。ExifTool 可以设置日期吗?我只看到有关更改日期的文档和示例。要将日期转移到当前,我需要以某种方式读取每个文件的日期,计算差异,然后转移。没关系,但我不知道如何使用 ExifTool 将创建日期读入变量。

我的一个障碍是我不会说 Perl。我做 Python,还有 pyexiv2。这允许写“日期”,但如果只是创建日期或所有日期,我看不到任何地方。

编辑

这里显示使用,例如,

在 Ubuntu linux 中,但我无法让它在 Windows 中工作。

作为一个黑客,我试过了

将日期设置为执行时间,可能是因为班次太疯狂了。但我想拥有控制权,特别是能够在不改变时间的情况下改变 YYYY:MM:DD。

因此,帮助仍然赞赏。

0 投票
2 回答
132 浏览

exif - EXIF 中哪个字段包含版权信息?

如何使用 gexiv2 向图像添加版权信息?我已阅读内容,但找不到需要为此编辑的字段。

0 投票
1 回答
329 浏览

python - Pyexiv2 和 PIL 文件阻塞

我正在编写一个脚本来将元数据保存到 jpg 图像并为 Wordpress 调整它们的大小。它一直进展顺利,使用 jpegs 和 pngs,直到我尝试在使用 PIL.Image.thumbnail() 调整 jpg(但不是 png)大小后直接在图像上使用它

我试图将它全部压缩成一个易于阅读的课程,以帮助任何可以帮助回答问题的人。主要类是 MetaGator(元缓解器),它将属性“标题”和“描述”写入文件中相应的元数据字段。

我用来测试它的代码在main中,并给出以下输出:

如您所见,在 JPG 测试中,它在普通文件上运行良好,但在 PIL 调整图像大小后根本无法运行。.PNG 不会发生这种情况,它使用 PIL 保存元数据,这会让我认为问题出在 pyexiv2 上。

我应该尝试什么?任何的意见都将会有帮助。

谢谢你。

0 投票
0 回答
136 浏览

python - pyexiv2获取图片exif,from_buffer函数导致内存泄露

我使用pyexiv2库读取图像exif信息。我发现ImageMetadata.from_buffer()方法在图像不完整时会导致内存泄漏。但是 ImageMetadata() 方法是可以的。

下面的代码是我的测试代码,当我让它从一个不是图像的文件中读取时,你会看到内存不是空闲的。