相关疑难解决方法(0)

如何在 Javascript 中提取本地图像的元数据?

我想获取用户拖放到网页中的图像的元数据。我已经设置了拖放。但是,图像实际上并未上传到服务器。它在本地访问。我仍然可以使用 Javascript 从图像中获取元数据吗?如果是这样,我该怎么做?有哪些好的图书馆?

如果没有,我是否绝对必须上传图像才能提取元数据?在 Javascript 中上传图像的最快方法是什么?

javascript metadata image

5
推荐指数
1
解决办法
7295
查看次数

Python:从PNG提取元数据

我可以使用R提取必要的信息,但是为了在整个项目中保持一致,我希望能够使用Python(最好是Python3)做到这一点。我需要一个名为“设置”的标签的内容。此标记包含XML,然后需要对其进行解析。

在R中获取元数据非常简单:

library(exifr)
library(XML)

path = file.path('path', 'to', 'file')

x = read_exif(file.path(path,'image.png'))
x$Settings
Run Code Online (Sandbox Code Playgroud)

看起来Python无法做到这一点,这让我很困惑。或这样做需要我比目前拥有更多的Python和PNG知识。如何使用Python提取PNG元数据?


这是我尝试过的事情清单:

PyPng PyPNG似乎很有希望。检查每个块的长度,似乎“ Settings”标签位于zTXt块中。

import png

filename = "C:\\path\\to\\image.png"

im = png.Reader(filename)

for c in im.chunks():
    print(c[0], len(c[1]))

>>>
IHDR 13
tIME 7
pHYs 9
IDAT 47775
zTXt 714
IEND 0
Run Code Online (Sandbox Code Playgroud)

以上摘自这篇文章。但是,仍不清楚如何提取zTXt数据。

hachoir3

使用该hachoir3软件包,我尝试了以下操作:

from hachoir.parser import createParser
from hachoir.metadata import extractMetadata

filename = "C:\\path\\to\\file\\image.png"
parser = createParser(filename)
metadata = extractMetadata(parser)

for line in metadata.exportPlaintext():
    print(line)
Run Code Online (Sandbox Code Playgroud)

这给了我以下内容:

Metadata:
- Image width: 1024 …
Run Code Online (Sandbox Code Playgroud)

python png metadata

5
推荐指数
2
解决办法
6314
查看次数

标签 统计

metadata ×2

image ×1

javascript ×1

png ×1

python ×1