Abh*_*ood 2 php metadata image imagemagick image-processing
如何从像这个网站的图像中提取元数据?我使用过exev2库,但与本网站相比,它只提供有限的数据.有更高级的图书馆吗?
我已经尝试过hacoir-metadata Python库.
Windows如何提取图像的细节(我们从属性中看到的)?
PNG文件由块组成,其中大多数是IDAT块,其中包含平均PNG中的压缩像素数据.所有PNG都以IHDR块开头,以IEND块结束.由于PNG是一种非常灵活的标准,因此可以通过组合新类型的块来扩展它 - 这就是动画PNG的工作原理.所有浏览器都可以看到第一帧,但了解APNG中使用的块类型的浏览器可以看到动画.
有很多地方可以将文本数据存储在PNG图像中,甚至可以存储元数据的更多位置.这是一个非常方便的总结.你提到了"描述标签",它只能存在于文本块中,所以我会专注于它.
PNG标准包含三种不同类型的文本块:tEXt(Latin-1编码,未压缩),zTXt(压缩,也是Latin-1),最后是iTXt,这是三者中最有用的,因为它可以包含UTF-8编码文本,可以压缩或解压缩.
所以,你的问题变成了,"提取文本块的方便方法是什么?"
起初,我认为pypng可以做到这一点,但它不能:
文本/ zTXt/iTXt
阅读时忽略.没有生成.
幸运的是,Pillow对此表示支持 - 幽默地说它只是在你提出原始问题前一天才添加!
所以,不用多说,让我们找到一个包含iTXt块的图像:这个例子应该这样做.
>>> im = Image.open('/tmp/itxt.png')
>>> im.info
{'interlace': 1, 'gamma': 0.45455, 'dpi': (72, 72), 'Title': 'PNG', 'Author': 'La plume de ma tante'}
Run Code Online (Sandbox Code Playgroud)
对于更一般的情况,查看其他读者,JPEG和GIF也似乎也很好地覆盖了这些格式 - 所以我建议PIL.这并不是说维护者hacoir-metadata
不会欣赏添加文本块支持的拉取请求!:-)