问题标签 [exiv2]

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 投票
3 回答
6363 浏览

python - 如何在 python 中使用 gexiv2?

我刚刚为我的 debian 机器编译了 exiv2 和 gexiv2,现在我想开始使用 gexiv2 来使用 python 编辑 IPTC 数据。gexiv2 网站提供以下代码行:

但这已经导致:

我什至不能导入 gi 所以我想我错过了另一个包!?我必须做些什么才能使这项工作按预期进行?

更新:我将我的操作系统升级到最新的 debian 版本。我现在可以导入 gi,但 GExiv2 仍然有问题。

导入 GExiv2 时出现以下错误:

0 投票
1 回答
501 浏览

c++ - QT/exiv2 应用程序在某些 Windows 机器上崩溃

我不是 Windows 用户,但我正在尝试帮助将 QT 项目移植到 Windows 中,该项目遇到了一些相当奇怪的问题(对我来说,无论如何)。我希望有人可以帮助我指出正确的方向。

因此,我可以在 Windows 7 专业 32 位机器(QT 5.1.1、MinGW 4.8.1、exiv2)上成功构建项目。虽然一切都在构建机器上运行,但程序在某些机器上崩溃(到目前为止,它在 64 位 Windows 7 专业版和另一个 32 位 Windows 7 上崩溃)但在其他机器上也能正常工作。崩溃消息并不是那么有用,因为它是一个通用的 StackHash / APPCRASH 错误。我尝试更改 DEP 设置,但这没有用(而且我不确定我是否会接受它作为“解决方案”)。我缩小了崩溃发生的位置(幸好这是一致的),下面是一个示例片段(读取文件夹中的 jpeg 文件并打印它们的时间戳)。

调用exiv2(exiv2-12.dll)中的任何函数都会导致程序崩溃

任何帮助将不胜感激。

0 投票
1 回答
205 浏览

linux - 如何将文件名从十进制转换为十六进制?

从这个网站和互联网上,我一直在寻找这个答案,但找不到具体的答案。我对Linux的了解不是很多,但是我的问题是:我想转换一个8字符文件名的JPG文件。所以从 2014-12-12 23.59.59.jpg 到 484140b7.jpg (十六进制)。我想出了或找到了这段代码:

我在这里和那里看到你可以使用类似 printf "%x\n" 的东西,但我无法让它工作。

有人可以帮我吗?

已经非常感谢了!

0 投票
1 回答
2991 浏览

metadata - PNG 图像是否支持 XMP 元数据?

在过去的几个小时里,我一直试图了解 XMP 元数据是如何处理 PNG 文件的,但我无法完全理解它。

如果我用 Photoshop 创建一个 PNG 图像,保存它并打开文件信息对话框(文件 > 文件信息或 Ctrl+Alt+Shift+I),我可以看到一些 XMP 属性,如CreateDate,CreatorToolModifyDate.

现在,如果我尝试使用 exiv2 打开文件并读取元数据,它似乎什么也找不到:

exiftool -xmp:all myImage.png,exiv2 -P X myImage.png甚至 GIMP 也是如此(但我认为它在内部使用 exiv2)。

如果在使用 Photoshop 再次保存时未删除任何添加的元数据,则不会出现这样的问题。如果不清楚,打开图像并使用 exiv2 添加 XMP 元数据,保存它,在 Photoshop 和文件信息对话框中打开图像,之前添加的属性不再存在。

奇怪的是,如果您使用 JPEG 图像执行整个过程,一切都会按预期工作:所有属性都可以从 Photoshop 和 exiv2 中看到,如果我尝试使用 exiv2 添加元数据(使用相同的代码),它会出现在Photoshop 也是如此。

我错过了一些明显的东西吗?对于 JPEG,PNG 有什么特别之处吗?我还没有尝试使用Adob​​e 的 SDK来编辑 XMP 数据,是不是更好?

任何帮助将不胜感激,因为这开始让我发疯:/

编辑:阅读这篇文章后,我尝试使用 Adob​​e Bridge,但它似乎没有显示与 Photoshop 相同的属性。如果我使用 Exiv2 添加 XMP 元数据,它们会显示在 Bridge 中,但如果我在 Photoshop 中修改图像,元数据会再次从 Bridge 中消失。

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 投票
2 回答
3384 浏览

shell - 使用 exiv2 或 imagemagick 从标准输入中删除 EXIF 数据并输出到标准输出

如何将图像通过管道传输到 exiv2 或 imagemagick,剥离 EXIF 标签,然后将其传输到标准输出以进行更多操作?

我希望有类似的东西:

这将输出通过标准输入提供的图像并计算其 md5sum。

或者,有没有更快的方法来做到这一点?

0 投票
1 回答
296 浏览

python - 在 Python 中使用 exiv2 从图像中去除 exiv 标签的示例

我想从 Python 调用 exiv2 以从图像中去除所有 EXIF 标签,然后在没有来自 python 的 EXIF 标签的情况下计算图像的 md5 哈希。

最好的方法是什么?

0 投票
1 回答
149 浏览

exiv2 - Exiv2 标签插入支持

exiv2 的功能是否存在限制,无法将标签“Exif.SubImage1.OpcodeList3”插入 DNG 文件?

我试图将此标签从一个 DNG 文件复制到另一个,但没有成功。

我的源文件是使用以下命令打印的:exiv2.exe -b -pa file.dng > output.txt

文件 output.txt 包含: Exif.SubImage1.OpcodeList3 Undefined 184 0 0 0 1 0 0 0 1 1 3 0 0 0 0 0 0 0 0 0 164 0 0 0 3 63 240 0 0 119 176 58 28 191 185 132 79 191 248 95 209 63 154 58 10 83 149 62 10 191 117 109 20 1 60 213 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 63 240 0 0 0 0 140 6 191 295 140 0 0 0 140 6 191 295 18 106 51 63 154 226 203 140 13 159 191 117 2017 2017 2017 88 36 225 127 123 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 63 239 255 253 253 213 87 206 191 191 185 63 155 248 100 114 115 143 207 191 118 115 180 47 58 216 144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 63 223 227 192 112 254 60 7 0 63 02

我正在尝试通过(例如)命令文件将此标签添加到没有它的不同 DNG 文件中:添加 Exif.SubImage1.OpcodeList3 Undefined "0 0 0 1 0 0 0 1 1 3 0 0 0 0 0 0 0 0 0 164 0 0 0 3 63 240 0 0 119 176 58 28 191 185 132 79 191 248 95 209 63 154 58 10 83 149 62 10 191 117 109 10 1 0 60 02 0 10 1 0 60 02 0 0 0 0 0 0 0 0 63 240 0 0 0 0 0 6 191 185 168 230 29 114 106 51 63 154 226 203 140 13 160 159 191 117 201 88 36 225 127 0103 0 0 0 0 127 0103 0 0 0 0 0 0 0 0 63 239 255 253 213 88 87 206 191 185 163 231 88 112 250 50 63 155 248 100 114 115 143 207 191 118 115 180 47 58 216 144 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 63 223 227 192 112 254 60 7 63 224 0 0 0 0 0 0"

但文件保持不变。

我也尝试过:添加 Exif.SubImage1.OpcodeList3 Undefined "0 0 0 1 0"

但仍然没有添加标签。我怀疑 exiv2 不支持插入这个标签。

我做错了什么还是不支持?

0 投票
1 回答
571 浏览

c++ - Qt 不会使用 exiv2.dll 编译项目

我正在拼命地尝试在 Windows 上使用 Qt(用于 GUI)和 exiv2(用于 EXIF 数据)以及 QtCreator 作为 IDE 从 JPG 图片中获取焦距。我完成了这个文档齐全的库的所有构建过程,它为我提供了一些用于动态链接的 .dll。因为我在 QtCreator gui 中使用 32 位 mingw,所以 dll 是 32 位构建的。使用 Visual Studio 构建库时没有错误,dll 不为空等。

下面是使用exiv2的类的构造函数的代码,其中focalLength是一个静态属性,img是另一个属性,path是一个QString:

库(exiv2.dll 和 exiv2.lib)在 (projectPath)\exiv2_x32;.pro 文件包含此内容,以及头文件和源文件:

但是当我尝试编译我的代码时,无论我多么努力,我都会得到相同的输出,“Exiv2 尚未声明”,“预期';' 在“图像”之前,等等,尽管我执行了 qmake 没有错误。为什么?

我是 C++ 的新手,所以我可能错过了一两件重要的事情,或者我对动态链接的理解可能是错误的。但我真的,真的需要帮助。我不敢相信我这么难得到一个焦距。

PS:当我尝试链接静态库时,链接器说它找不到“exiv2.a”的目标。

0 投票
1 回答
111 浏览

image - 将提取的元数据附加到原始文件

我有一些文件,我从中删除了元数据并使用 exiftool 将其提取到 YML 文件中。现在我想再次将这些文件附加到相同的文件中。我试过 EXIV2 但它不起作用。是否有任何工具或特定命令可以使其工作。提前致谢。