问题标签 [libexif]

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 回答
4381 浏览

c - 如何在 C 中编辑 EXIF 标签?

我有一个使用 BlackBerry 10 Dev Alpha 拍摄的 JPG 文件。此代码(此示例的略微修改版本)正确打印结果

这意味着输出:

是:

型号:BlackBerry 10 Dev Alpha

现在我想知道如何用另一个值替换“BlackBerry 10 Dev Alpha”(EXIF_TAG_MODEL),例如“Nokia 3330”。我已经看了一下另一个例子。不幸的是,我发现它很难阅读。也许有人有更短/直截了当的代码?

0 投票
1 回答
1220 浏览

jpeg - libexif:使用 IPTC/XMP 将新的 exif 写入图像

我正在尝试使用 libexif 将 EXIF 元数据写入 JPEG 图像。我遇到了没有 EXIF 但有 IPTC/XMP 元数据的图像的问题。使用 IPTC/XMP 将 EXIF 写入图像后,我无法读取 EXIF。“exif”命令行实用程序(也使用 libexif)报告 EXIF 损坏。如果我对没有任何元数据的图像做同样的事情,一切都很好。

这是演示问题的小型测试应用程序(假设我们正在使用没有 EXIF 的图像)。

在这里您可以下载项目和示例图像。我使用以下命令在通过 macports 安装 libexif 的 mac 上构建它:gcc exif.c -I/opt/local/include -L/opt/local/lib -lexif

0 投票
2 回答
3935 浏览

objective-c - mac OS开发中获取exif数据

我是 Objective-C 的新手,我正在尝试在我的 Mac OS 应用程序中获取某些图像的 exif 数据。看起来我需要一个 C 库来获取 exif 数据,所以我四处搜索,找到了一些 C 库,但我正在努力解决如何实现它们。

1 我是否需要获取 C 库才能读取从数码单反相机拍摄的图像上的 exif 数据?(拍摄日期之类的东西)

  1. 我尝试了这个库http://libexif.sourceforge.net/并在网站上四处寻找并从这里下载:http ://www.hmug.org/pub/MacOS_X/BSD/Libraries/Graphics/libexif/ ,其中转到此链接:http ://www.hmug.org/pub/MacOS_X/BSD/Libraries/Graphics/libexif/libexif-0.6.21-1-osx8.tar.gz

  2. 我将这些文件放入 xcode 中,我认为文件似乎已正确添加到我的库中。在此处输入图像描述

  3. 我现在不确定如何使用这些 C 类。我尝试包括这样的文件

    #include "exif-data.h"

    #include "exif-loader.h"

这是正确的吗?我应该以不同的方式来做吗?

  1. 然后我真的对用法感到困惑。在这里的文档页面http://libexif.sourceforge.net/api/它说

使用 libexif 的应用程序通常会首先创建一个 ExifLoader 以将 EXIF 数据加载到内存中。从那里,它将将该数据提取为 ExifData 以开始操作它。每个 IFD 在该 ExifData 中由其自己的 ExifContent 表示,其中包含 ExifEntry 形式的所有标记数据。如果需要 MakerNote 数据,可以从 ExifData 中提取 ExifMnoteData 并使用 MakerNote 函数进行操作。

“创建 ExifLoader”的语法是什么?

对不起菜鸟问题!任何帮助表示赞赏。

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 回答
3149 浏览

c - 使用 libexif 将 exif 数据写入 jpg

我正在尝试使用 libexif 将 exif 数据写入 jpeg 文件。我几乎遵循它提供的示例。我可以理解所有正在写入的 Exif 数据块和所有内容,但是如何按照他们的建议加载 jpeg 数据?(使用 libjpeg)。我找不到可以直接让我将 jpeg 导入为 char 的函数。如果我在其中包含一个虚拟 jpg,我的代码可以正常工作,如下所示。

0 投票
0 回答
740 浏览

ios - 在 iOS 照片库/库中编辑 Exif 数据而不创建另一个副本

有没有办法编辑/修改作为 iPhone 上 iOS 照片库/画廊一部分的照片的 exif 数据。每当我尝试这样做时,iOS 都会尝试将其保存为单独的图像文件。但是,我想修改 exif 数据,而不创建照片的另一个副本。我使用了下面链接中提到的 libexif,但是 libexif 允许您读取和修改数据,但我无法找到存储在同一个文件中的方法。IOS 中的图库 API(ALAsset、PhotoKit)似乎不提供对底层物理文件的直接访问。它们仅提供可以访问/更新或插入图像内容的 API。他们似乎没有修改 exif 数据的 api。此外,libexif 似乎适用于原始文件名路径。有没有办法使用 PhotoKit 或 ALAsset 获取原始文件名?

我错过了什么吗?任何帮助或指示将不胜感激。

如何在不加载图像的情况下为文件系统上的现有图像写入或修改 EXIF 数据?

在 iOS 上使用修改后的元数据(无重新编码)保存原始图像数据

0 投票
0 回答
589 浏览

c++ - 将exif数据写入jpeg流

我尝试在 JPEG 流中插入一些 EXIF 数据。我为此使用 libexif。libexif 示例展示了如何打开文件 -> 添加数据 -> 然后保存文件。我所拥有的是指向void * JPEGPointerJPEG 流的指针 ( )。所以我只想将 libexif 生成的数据添加到这个指针中,以便通过 FTP 发送它。不保存到文件。下面的代码基本上是来自 libexif 的示例,memcpy()我自己尝试了一些无效的尝试。JPG 文件在 memcpy 后已损坏,因此我无法使用任何软件打开它。我想我将 exif 复制到错误的位置。不幸的是,我不能使用任何附加库。

任何想法如何将 EXIF 数据放在 JPEG 数据中的正确位置?

0 投票
1 回答
1768 浏览

libjpeg - 使用 libexif 和 libjpeg 在现有 JPEG 上设置 exif 标签

在我的 C 程序中,我想使用libexiflibjpeg在给定路径inputFilePath中存在的现有 jpeg 文件上设置 exif 标签,并将生成的 jpeg 保存到输出路径outputFilePath

输入的 jpeg 文件很大(40000 X 40000 像素),因此将整个图像加载到内存中并不可取,也不需要。

我不关心 Jpeg 中其他现有的 Exif 标签,它们可能会被删除。

我已经阅读并尝试了使用固定 JPEG 的 libexif 提供的示例,但无法弄清楚如何对任何 JPEG 执行相同操作。

顺便说一句,我确实得到了以下代码,它通过加载内存中的 jpeg 来设置 exif 标签。它使用与 libexif 一起提供的 exif 实用程序中提供的 libjpeg 实现。

0 投票
0 回答
58 浏览

c++ - 如何在 libexif 中保存 char* 标签值

我遇到了 libexif 保存标签字符串数据的问题。我正在为字符串值分配内存,使用 strcpy,然后将指针分配给特定标签条目-> 数据。问题是 - 使用 exif_data_save_data 和 fwrite 保存,我将字符串值削减为 7 个字符。如果我首先从该特定 exif 标记(特别是 EXIF_TAG_NAME)的具有较长字符串值的文件中加载所有这些数据,则 max string len 可能会有所不同。

预计相机型号是“Canon EOS 5D Mark II”,但实际上是“Canon E”

0 投票
1 回答
71 浏览

xmp - 使用 libexif 保留/复制 XMP

我尝试使用 libexif 向 JPEG 图片添加缩略图。现在我从 exif(libexif 团队提供的命令行工具)借用代码。但是我注意到 XMP 标记已从元数据中删除。这里有一个旧的错误报告。

我试图看看如何使用 libexif 来实现这一点,但我真的不明白如何从输入文件中获取 XMP 并将其放入输出文件中。我只想复制所有 XMP 数据,不需要提取任何内容。

我看到exif_t​​ag.hEXIF_TAG_XML_PACKET中有一个标签,但不知道如何读/写这个标签。

一个相关的解决方案在这个 SO 答案中,但它看起来很复杂。我不熟悉 C 中的编码。

仅使用 libexif API 时实际上可以保留所有 XMP 吗?近年来情况有变化吗?你会怎么用代码写这个?

谢谢