Python 在Tkinter中找到相同的图像?

Python 在Tkinter中找到相同的图像?,python,image,tkinter,photoimage,Python,Image,Tkinter,Photoimage,我的Tkinter GUI直接从关联的last.fm链接加载特定歌曲/艺术家组合的专辑封面(如下所示:http://ift.tt/1Jepy2C因为它由ifttt.com获取,并重定向到last.fm上的png文件。) 当last.fm上没有相册封面时,ifttt将改为重定向到此图片:https://ifttt.com/images/no_image_card.png 问题是,这张图片的尺寸与方形相册封面不同,这意味着我制作了一个“N/a”png文件,如果收到该图片,我会插入该文件。不幸的是,简

我的Tkinter GUI直接从关联的last.fm链接加载特定歌曲/艺术家组合的专辑封面(如下所示:
http://ift.tt/1Jepy2C
因为它由ifttt.com获取,并重定向到last.fm上的png文件。) 当last.fm上没有相册封面时,ifttt将改为重定向到此图片:
https://ifttt.com/images/no_image_card.png

问题是,这张图片的尺寸与方形相册封面不同,这意味着我制作了一个“N/a”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()
不起作用。显然,即使它们是相同的图像,
internet\u图像中的b64数据与从硬盘加载的文件不同。

我的问题是,我如何检查两张图像在原始数据方面是否完全相同,以便检测ifttt何时向我发送其n/a图片?

我完全是基于last.fm的所有相册封面都是300x300px的正方形图像来解决这个问题的。由于来自ifttt的n/a图像是矩形的,比其高宽,因此我有几种可能性:

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

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


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

你可以从IFTTT下载N/A图像,用Tkinter的方法调整大小,使其非常小并保存到你的电脑上。然后在你的代码中,从IFTTT加载图像,调整大小,将其与你电脑中的图像按字节进行比较。不过这有点极端。难道服务器没有其他方法告诉你没有专辑封面吗?据我所知没有。但是在这种情况下,专辑封面总是正方形的,而ifttt的n/a图像是矩形的,我可以比较它们的宽度,如果它们不相等,我就知道我有错误的图像。啊,那好多了