问题标签 [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 回答
2479 浏览

python - 如何将纬度归一化到-90到90的范围内?

使用 piexif 我得到了纬度和经度的 DMS,我试图将其转换为十进制度,但对于某些图像,我得到的纬度值是 184.62583333333333,它超出了 [-90,90] 范围。

查看下面的代码,

值 = {0: (2, 3, 0, 0), 1: b'N', 2: ((19, 1), (8, 1), (595773, 10000)), 3: b'E' , 4: ((73, 1), (0, 1), (131775, 10000)), 5: 0, 6: (70989, 1000)}

我关心的是纬度和经度,它存储在键 2 和 4 的值中。

纬度 = 19+8/60.0+595773/3600.0

经度 = 73+0/60.0+131775/3600.0

这就是输出。

输出:184.62583333333333 109.60416666666666

请让我知道如何在 [-90,90] 范围内标准化纬度。

0 投票
2 回答
2119 浏览

python-3.x - 使用 Python 3.6 覆盖 Image Exif 中的 GPS 坐标

我正在尝试转换图像地理标签,以便图像和地面控制点位于我的软件(Pix4D 映射器)内的同一坐标系中。

这里的答案是:

Exif 数据是标准化的,GPS 数据必须使用上述地理坐标(分、秒等)而不是分数进行编码。除非它在 ​​exif 标签中以这种格式编码,否则它不会粘住。

这是我的代码:

我得到 struct.error: 转储方法中的参数超出范围。原始 GPSInfo 标签如下所示:{0: b'\x02\x03\x00\x00', 1: 'N', 2: ((48, 1), (48, 1), (3449322402, 70000000)), 3: 'E', 4: ((9, 1), (57, 1), (1136812930, 70000000)), 5: b'\x00', 6: (3659, 10)}

我猜我必须在写入之前抵消这些值并正确编码它们,但不知道要做什么。

0 投票
2 回答
1185 浏览

python - Is there a way which I can add meta tags / keywords to an image using Python?

I have been searching for hours for the ability to edit / add tags or basically keywords of/to an image via Python. I wanted to change metadata of images so I had to use Piexif library and found it completely great but there is a problem which XPKeywords requires type 'bytes' instead of 'Ascii' for some reason.

I've tried using IPTCInfo library to just edit the keywords but unfortunately didn't go out that good like I wanted to. I've also tried converting the string to bytes via 'b' prefix but still the same problem remains.

0 投票
1 回答
893 浏览

python-3.x - 如何修改TIF文件的EXIF数据

我正在尝试修改 python 3 中的现有元数据。更具体地说,我的元数据中有 GPS 坐标和高度,我需要修改它。

我正在使用 piexif mudule,我遇到了两个问题。首先,我设法改变了高度,使用 exif_dict['GPS'][piexif.GPSIFD.GPSAltitude] = (140, 1) 它并且它有效。

但我不明白如何改变纬度和经度?因为它们由三个字段组成,例如 ((53, 1), (291191, 10000), (0, 1))。

当我尝试使用修改后的元数据保存 tiff 文件时,会出现第二个问题。如果我将其保存为 TIFF file: img.save(fname_2, 'tiff', exif=exif_bytes),则会创建 fname_2 文件,但它的元数据不会更改。如果 Isave as JPEG - img.save(fname_2, 'jpeg', exif=exif_bytes) - 元数据发生更改,但文件从 289 MB 压缩到 15 MB,则无法将其用于我的目的。

有没有人设法做到这一点?这听起来很简单,但我似乎无法解决。

0 投票
1 回答
2362 浏览

python - 尝试获取图像的 EXIF 标签时出错

我正在尝试获取 JPG 图像的 EXIF 标签。为此,我正在使用piexif模块。
问题是我得到一个错误 - KeyError,说:

我已经按照文档中的方式做了所有事情,这里有一些问题 StackOverflow 和 pypi 网站。一切都一样。我的代码:

那么如何读取图像的 EXIF 标签呢?我做错了吗?拜托,我太无知了。这是一个非常奇怪的错误。

0 投票
1 回答
522 浏览

python - 如何使用python更改图像的相机型号名称

我试图使用 python 的 PIL 和 piexif 库更改相机型号名称。这是一次成功的尝试,但是当我检查图像时,图像大小从 8-9 MB 减小到了 1-2 MB。

如何在不更改图像大小的情况下更改 exif 数据?

我的代码如下:

0 投票
0 回答
180 浏览

python - 无法将 EXIF 数据保存到文件

我正在尝试制作一个应用程序,通过它的名称恢复图片的原始日期(拍摄时间),因为图片的名称包含它在 Android 手机上的日期,但我无法保存 EXIF 数据。
没有错误等。它只是不保存。我正在使用 PIL 和 piexif。

我在 Stackoverflow 和其他论坛上尝试了所有内容,但没有任何代码起作用。
我的代码如下所示:

0 投票
1 回答
281 浏览

python - 如何使用 piexif 修改 XPKeywords?

我尝试在将关键字添加到 exif 数据字典之前对其进行编码,但由于某种原因,它仅作为元组存储,并且在我探索 Windows 中的属性时没有显示。

0 投票
1 回答
262 浏览

python - 如何解码 Piexif XPKeywords?

我一直在使用 Piexif 向 Jpeg 图像添加标签,并且运行良好。现在我想读取图像的标签,但遇到了问题。我给了一张图片标签(Tag1、Tag2、Tag3)并使用这段代码我应该能够阅读这些关键字:

它返回的是:
(255, 254, 84, 0, 97, 0, 103, 0, 49, 0, 59, 0, 84, 0, 97, 0, 103, 0, 50, 0, 59, 0 , 84, 0, 97, 0, 103, 0, 51, 0)
我知道 (84, 0, 97, 0, 103) 代表单词Tag,但我不知道这是哪种编码。

是否有人碰巧知道 Piexif 使用什么编码,或者只是一般地识别它?

0 投票
1 回答
1048 浏览

python - 在 JPG 文件中嵌入数据而不更改 python 中的图像

我有 289 字节的数据要嵌入到 jpg 文件中。当然不改变图像。此外,我可以从图像中提取该数据,并且图片仍然是原始的。为了证明原创性,嵌入散文前后图像的哈希值(SHA 256)仍然是相同的值。

我试过使用stegano库和piexif. 这是使用的代码piexif

我有一个错误piexif._exceptions.InvalidImageDataError: Given data isn't JPEG.