在 Tkinter 中找到相同的图像?
Find identical images in Tkinter?
我的 Tkinter GUI 直接从关联的 last.fm link 加载某个 song/artist 组合的专辑封面(看起来像这样: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_image
中的 b64 数据与从我的硬盘驱动器加载的文件不同。
我的问题是,如何检查两张图片的原始数据是否完全相同,以便检测 ifttt 何时将他们的 n/a 图片发送给我?
我已经完全解决了这个问题,因为来自 last.fm 的所有专辑封面都是 300x300 像素的正方形图像。由于来自 ifttt 的 n/a 图像是矩形的,宽度大于高度,我有几种可能性:
1) 检查纵横比。如果不是1,我就没有封面图
2) 只是检查下载的图像的宽度。如果不是300px,我没有封面图。
3) 将下载图像的宽度与我本地错误图像副本的宽度进行比较。如果它们相等,我就没有封面图了。
我的 Tkinter GUI 直接从关联的 last.fm link 加载某个 song/artist 组合的专辑封面(看起来像这样: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_image
中的 b64 数据与从我的硬盘驱动器加载的文件不同。
我的问题是,如何检查两张图片的原始数据是否完全相同,以便检测 ifttt 何时将他们的 n/a 图片发送给我?
我已经完全解决了这个问题,因为来自 last.fm 的所有专辑封面都是 300x300 像素的正方形图像。由于来自 ifttt 的 n/a 图像是矩形的,宽度大于高度,我有几种可能性:
1) 检查纵横比。如果不是1,我就没有封面图
2) 只是检查下载的图像的宽度。如果不是300px,我没有封面图。
3) 将下载图像的宽度与我本地错误图像副本的宽度进行比较。如果它们相等,我就没有封面图了。