问题标签 [piexif]

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

python - 通过 piexif 读取 EXIF 信息时随机字母的重要性

我刚刚进入 python 并专门使用 Pillow 和 piexif 来提取和编辑我拥有的一堆 jpeg 的 EXIF 数据。我用piexif提取和读取ImageDescription之类的EXIF数据信息,发现很多字段前面有随机字母;当我第一次提取 ImageDescription 时,它显示为 b'Olympus.....' 我编辑了标签,当我输出它时,现在给了我,作为测试,只是测试(没有 b 或撇号,而来自 piexif 的样本显示 u's)

有人知道撇号和/或随机字母的用途吗?

0 投票
1 回答
282 浏览

python - Django 使用 Piexif 更新 InMemoryUploadedFile

在保存到服务器之前,我试图在继续对其进行一些其他处理之前去除上传图像上的exif数据。

我在这个答案中使用 piexif 来去除exif 元数据。但是,piexif.insert() 文档需要修改图像的路径。可以使用 piexif 写入内存中的文件吗?

还记录了 PIL 以去除 exif 数据。因为无论如何我都在使用 PIL,所以我宁愿使用纯 PIL 方法。

PIL 的保存方法似乎是将 exif 数据应用于图像,而不是在没有 exif 的情况下保存它(对原始图像应用旋转)。还是这是由 BytesIO 缓冲区引起的?

0 投票
2 回答
928 浏览

python - 使用 Python 将“拍摄日期”Exif/XMP 信息添加到 TIF 文件

在 Windows 10 上使用以下 Python 代码,我正在尝试在使用 Nikon Scan 4.0.3(2008 年左右的软件)创建的 tif 图像文件上编辑“拍摄日期”的 EXIF 信息。

这在 Python 3 中适用于 jpeg 文件,但是当我尝试使用相同的代码来编辑我的 tif 文件时,我收到以下错误:

到目前为止,我一直在寻找其他可能支持我的文件的软件包,但无济于事。

有谁知道如何在不删除现有 exif 信息且不更改图像格式的情况下在 Python 中完成编辑?

要重现或获取失败 tif 文件的样本,请克隆我的项目(链接如下)。

细节:

在将数千张图片扫描到 tif 文件后,我想为“拍摄日期”指定 EXIF 值。我正在编写一个 Python 脚本来在 Windows (BitBucket)中执行此操作,它还将从以 YYYY-MM-DD * 开头的预定义文件夹命名约定中编辑“创建日期”和“修改日期”。最后两个任务适用于 tif 文件和 jpeg,但 EXIF 不适用于 tif。

更新:

运行 exif 工具,我得到没有创建日期节点的输出,但是在使用文件属性在 Windows 中设置日期后,出现“创建日期”和“日期/时间原始”字段。此外,在 Windows 中设置创建日期后,XMP 元值的原始文本打印输出会提供一个名为 xmp:createdate 的添加节点。我仍然不知道如何第一次在文件中创建这些字段。

更新 2:

看起来 Exif 不适用于 Nikon Scan (2005) 中的文件。唯一的选择是将 xmp:createdate 节点添加到文件中的 XMP 信息中。如果有人可以向我展示这是如何完成的,无论是在纯 Python 中,还是通过在 Windows 上从 python 调用一个单独的工具,它都应该得到充分的赏金。

0 投票
1 回答
217 浏览

javascript - 在javascript中使用字节(UCS2)类型修改jpg图像Exif

我正在尝试使用piexifjs模块修改 jpg 的 Exif 数据。它运作良好,但对于最重要和最基本的标签,如Title, Comment, Author... 它根本不起作用。

当我运行它时,它会抛出Error: 'pack' error. Got invalid type argument.
我搜索互联网并在Metadata reference tables其中说它们的类型为Byte https://www.exiv2.org/tags.html。所以当我制作它zeroth[piexif.ImageIFD.XPTitle] = 4;或某个数字时,它会运行,但不会更改标题。
那么我怎样才能让它工作呢?他们的类型是什么意思Byte?怎么能

0 投票
1 回答
225 浏览

javascript - 使用 piexifjs 在 jpeg Exif 上添加/修改 gps 坐标

piexifjs用来操作 jpg 图像的 exif 数据。一切正常。但是当我尝试修改 gps 经度和纬度时,我遇到了一些问题。
正如在https://www.exiv2.org/tags.html上一样,它说明了 gps 的数据类型协调它Rational,我无法理解它是如何工作的。

或者

我可以添加所有其他的,比如AuthorXPTitle...但是它对于 gps 坐标根本不起作用。

0 投票
2 回答
391 浏览

python - 更改 TIF 文件的 EXIF 数据会影响其余元数据

我正在使用piexif库来修改 tif 文件的 EXIF 数据的 gps 高度。这是我的实现:

该代码有效,但是新 tif 照片上的元数据现在比原始照片少得多。甚至 GPS 坐标也会丢失。

我的问题是如何在不影响其余部分的情况下更改 tif 文件中关于 GPS 的元数据?

0 投票
0 回答
227 浏览

python - 在 Python 中更新 png 文件中的元数据注释

我正在尝试根据特定标准为目录中的一堆图像更新图像文件(jpg 格式)中的元数据注释(详细信息 -> 描述 -> 注释)。元数据注释是由空格分隔的字符串值。元数据注释示例 - “ABC 123 07-04-21”等。请参见附图。

在此处输入图像描述

我在与图像存储在同一目录中的 csv 文件中获得了一堆图像文件和注释。我需要将图像文件名与目录中存在的文件进行匹配,并将 csv 文件中的注释更新为图像元数据注释(详细信息 -> 描述 -> 注释)。

我尝试了几件事。能够找到如何更新 jpg 文件中的评论,尽管适用于单个图像。

用于更新单个 JPG 文件中的注释的代码段。编码对于实际查看 jpg 文件中更新的注释至关重要。

我尝试过的几件事:

FinalImageMetaData.csv 的示例内容

ListImage.csv 的示例内容

请分享任何想法/代码片段。

0 投票
0 回答
16 浏览

python - 如何使用 python 将非 latin1 字符写入 exif 标签?

作为使用 Pillow 的应用程序的一部分,我想为一堆照片更新 exif,包括艺术家姓名、标题等。到目前为止,我一直在使用 piexif 来做这件事。但是我遇到了编码问题:

UnicodeEncodeError: 'latin-1' codec can't encode character '\u0153' in position 3: ordinal not in range(256)

编码和它的错误是一场噩梦,一个生命不足以让我只掌握它的精神。我知道该字符œ不是 latin1 编码的一部分,piexif 使用它而不控制它。但是,如果我在 Windows 10 资源管理器上手动添加 exif 标签,我可以成功添加该字符,甚至可以通过piexif.load(). 我的理解是好像没有必要强加 latin1 编码?有没有我可以使用的解决方法或其他模块?