如何在Python/Django中获取图像标题

A.J*_*.J. 6 python django image python-imaging-library

我想知道当你上传图片时 Facebook 和 Flicker 如何获取图片标题。

有两点需要注意。

  1. 图片标题(我们通常称之为名称)
  2. 图片描述.标题(您可以检查图片属性并进入详细信息,然后查看描述标题下的标题,这是隐式且不可见的标题)

当我们将图片上传到Facebook和时Flicker,他们从图像中提取此信息,并设置为标题。

我如何使用 Python / Django / PIL 做到这一点?

找到图像作为示例。下载并检查其属性、详细信息、描述和标题。尝试上传到FacebookFlicker,他们会提取此信息。


编辑

这是显示我正在尝试的图像。看标题字段已填充,Facebook 正在提取此信息,但不是 Python 代码。当我也添加主题时?(这是标题下的一个字段),我能够获取图像描述。这是两张图片。

在此输入图像描述

第二张图片。

在此输入图像描述

图片链接

图片一(仅包含标题)图片二(包含标题和主题)

笔记:

当我在记事本中打开文件时,我可以看到那里的描述。

<dc:description> <rdf:Alt> <rdf:li xml:lang="x-default">heeeeeeeeeeeeeeeee</rdf:li> </rdf:Alt> </dc:description> 
Run Code Online (Sandbox Code Playgroud)

jpr*_*itt 1

你可以用 PIL 来做到这一点:

from PIL import Image
img = Image.open('img.jpg')
exif_data = img._getexif()
Run Code Online (Sandbox Code Playgroud)

(我从这个答案中得到了这一点:/sf/answers/333566971/

编辑:要获得更清晰的字典,请执行以下操作(借用上面的答案):

from PIL.ExifTags import TAGS
exif = {
    TAGS[k]: v
    for k, v in img._getexif().items()
    if k in TAGS
}
Run Code Online (Sandbox Code Playgroud)