1

我的 Tkinter GUI 直接从关联的 last.fm 链接加载特定歌曲/艺术​​家组合的专辑封面(看起来像这样:http://ift.tt/1Jepy2C因为它由 ifttt.com 获取并重定向到 last.fm 上的 png 文件。)当没有last.fm 上的专辑封面,ifttt 重定向到这张图片:https://ifttt.com/images/no_image_card.png.

问题是这张图片与方形专辑封面的尺寸不同,这意味着我制作了一个“不适用”的 png 文件,如果我收到那张图片我会插入该文件。不幸的是,就像这样:

from tkinter import *
local_copy_of_not_available_image = PhotoImage(file="album_not_found.png")
internet_image = PhotoImage(data=b64_Album_data) # fetched b64 data through urllib, which should contain either an album cover or the n/a picture above
if internet_image == local_copy_of_not_available_image:
    actual_image = PhotoImage(file="my_album_not_found_square_replacement_picture.png")
else:
    actual_image = PhotoImage(data=b64_Album_data)

cover = Label(root, image=actual_image)
cover.pack()

mainloop()

不起作用。显然,即使它们是相同的图像,其中的 b64 数据与internet_image从我的硬盘驱动器加载的文件也不相同。我的问题是,我如何检查两个图像在原始数据方面是否完全相同,以便检测 ifttt 何时向我提供他们的 n/a 图片?

4

1 回答 1

1

我已经解决了这个问题,因为所有来自 last.fm 的专辑封面都是方形 300x300px 图像。由于来自 ifttt 的 n/a 图像是矩形的,比它的高度更宽,我有几种可能性:

1) 检查纵横比。如果不是 1,我没有封面图片。

2)只需检查下载图像的宽度。如果不是 300px,我没有封面图片。

3) 将下载的图像的宽度与我的错误图像的本地副本的宽度进行比较。如果他们是平等的,我没有封面图片。

于 2016-03-16T00:06:02.113 回答