【问题标题】:How to get image title in Python/Django如何在 Python/Django 中获取图像标题
【发布时间】:2020-02-29 02:08:45
【问题描述】:

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

有两点需要注意。

  1. 图片标题(我们通常称之为名称)
  2. 图片Description.Title(可以查看图片属性进入Details,在description标题下看到Title,这是隐含的不可见标题)

当我们将图片上传到FacebookFlicker 时,它们会从图片中提取此信息,并设置为标题。

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

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


编辑

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

第二张图片。

图片链接

Image One(with title only)Image Two(with title and Subject)

注意:

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

<dc:description> <rdf:Alt> <rdf:li xml:lang="x-default">heeeeeeeeeeeeeeeee</rdf:li> </rdf:Alt> </dc:description> 

【问题讨论】:

  • 在 PyPI 中查看 EXIFmodules matching "exif"
  • 好的,谢谢,我检查了pypi.python.org/pypi/ExifRead/1.4.2,但没有找到标题字段,但找到了其他字段。
  • 我无法在 exif 中找到并阅读标题。我认为您也应该查看它们?或者您可以使用问题中的图像。并尝试阅读标题

标签: python django image python-imaging-library


【解决方案1】:

你可以用 PIL 做到这一点:

from PIL import Image
img = Image.open('img.jpg')
exif_data = img._getexif()

(我从这个答案中得知:https://stackoverflow.com/a/4765242/2761986

编辑:要获得更干净的字典,请执行此操作(从上面的答案中借用):

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

【讨论】:

  • 感谢您的回答,但我正在寻找标题字段,它在 exif 中仍然不可用。
  • 我无法在 exif 中找到并阅读标题。我认为您也应该查看它们?或者您可以使用问题中的图像。并尝试阅读标题
  • 我会试试的。您希望该示例图片中的标题是什么?
  • 下载图片,dl.dropboxusercontent.com/u/10712627/…,然后尝试在属性下找到。细节。描述。标题。上面写着“拉合尔堡,拉合尔,巴基斯坦。”
  • 这看起来只是文件的名称。要提取名称,减去扩展名,请使用:os.path.splitext(img.filename)[0]
【解决方案2】:

我希望将图像标题放入 caja 列,并使用此处的帮助提出

https://gist.github.com/infirit/497d589c4dcf44ffe920 安装 caja-columns.py

编辑代码以拥有

from PIL import Image
from PIL import ExifTags
from PIL.ExifTags import TAGS

...


                            im = Image.open(filename)
                            exif_data = im._getexif()
                            exif = {
                                    TAGS[k]: v
                                    for k, v in im._getexif().items()
                                    if k in TAGS
                            }

                            file.add_string_attribute('title',exif['ImageDescription'])                                file.add_string_attribute('pixeldimensions',str(im.size[0])+'x'+str(im.size[1]))

您有望获得一个填充的图像标题字段

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-31
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    • 2022-08-04
    • 1970-01-01
    • 2017-02-14
    • 2021-04-13
    相关资源
    最近更新 更多