我正在使用一个简单的代码,通过PIL的函数getcolors()将图像与桌面截图进行比较。当我打开图像时,它可以工作:
im = Image.open('sprites\Bowser\BowserOriginal.png')
current_sprite = im.getcolors()
print current_sprite
然而,使用pyautogui.screenshot()和ImageGrab.grab()作为截图,我的代码没有返回。我尝试过使用RGB转换,如下所示:Cannot use im.getcolors。
此外,即使我将截图保存为.png,它仍然没有返回。
i = pyautogui.screenshot('screenshot.png')
f = Image.open('screenshot.png')
im = f.convert('RGB')
search_image = im.getcolors()
print search_image
第一次发帖,非常感谢帮助。
答案 0 :(得分:3)
相当古老的问题,但对于那些现在已经看到这个问题的人:
Image.getcolors()作为参数“ maxcolors –最大颜色数”。 (来自文档here)。
图像可以具有的最大颜色数,等于其包含的像素数。 例如,一张50 * 60px的图像最多可显示3,000种颜色。
要将其转换为代码,请尝试以下操作:
# Open the image.
img = Image.open("test.jpg")
# Set the maxcolors number to the image's pixels number.
colors = img.getcolors(img.size[0]*img.size[1])
答案 1 :(得分:0)
如果你检查文档,如果图像中的颜色数大于默认参数(设置为256),则getcolors返回None
。