Я не понимаю, что вы пытаетесь сделать, но проблема в том, что вся информация в вашем изображении находится в альфа-канале (т.е. прозрачности). Я могу продемонстрировать это, разделив каналы R, G, B и A, используя ImageMagick в Терминале следующим образом, и разместив их рядом друг с другом:
magick image.png -channel RGBA -separate -background none +smush 10 result.png
Итак, красный, зеленый и синий каналы нулевые (т.е. черные), а альфа-канал имеет белый цвет там, где он прозрачен, и вы можете видеть сквозь черный цвет RGB, и это имеет черный цвет там, где он прозрачен.
Итак, что касается вашего вопроса, поскольку вся информация находится в альфа-канале, вы можете взять только альфа-канал в качестве изображения:
#!/usr/bin/env python3
import tkinter as tk
from PIL import ImageTk, Image
root = tk.Tk()
root.title("Karel")
frame = tk.Frame(root)
frame.pack()
canvas = tk.Canvas(frame, bg="red", width=500, height=500)
canvas.pack()
path = "image.png"
img = Image.open(path).getchannel('A') # Take just alpha channel
img = img.point(lambda a: 255-a) # Invert black/white
img = img.resize((250, 250), Image.ANTIALIAS)
img = ImageTk.PhotoImage(img)
image = canvas.create_image(150,150, image = img)
root.mainloop()
Обратите внимание, что вы можете легко установить ImageMagick на macOS с homebrew :
brew install imagemagick
Если вы работаете с изображениями, пока вы там, также получите эти пакеты:
brew install pngcheck exiftool jhead