如何将海龟的形状设置为PIL图像

时间:2018-12-15 15:35:45

标签: python python-3.x python-imaging-library turtle-graphics

快速提问: 是否可以从PIL图像对象注册python乌龟形状? 最好不要将其另存为磁盘上的文件。

注意:我正在使用多个PIL对象。意思是我要同时加载多个图像,所以我需要可以同时处理多个形状的对象。 没有图像将被合并。 (只是澄清一下。)

还:是否可以创建一个诸如stdout之类的“假文件”?通常,这会派上用场。

这不是重复的。它不是在询问如何正常设置乌龟形状,而是在将其设置为PIL对象。与路径字符串不同。

1 个答案:

答案 0 :(得分:0)

我已经拼凑了使用PIL创建乌龟光标图像所需的步骤(例如,从JPG中获取)。我在tkinter中嵌入乌龟,因为使用乌龟独立,您可以在设置Tk并失败之前轻松调用PIL的ImageTk:

from tkinter import *
from turtle import TurtleScreen, RawTurtle, Shape
from PIL import Image, ImageTk

def register_PIL(name, image):
    photo_image = ImageTk.PhotoImage(image)
    shape = Shape("image", photo_image)
    screen._shapes[name] = shape  # underpinning, not published API

root = Tk()

canvas = Canvas(root, width=500, height=500)
canvas.pack(fill=BOTH, expand=YES)

screen = TurtleScreen(canvas)
turtle = RawTurtle(screen)

image = Image.open("test.jpg")
register_PIL("aardvark", image)
turtle.shape("aardvark")

# ...

screen.mainloop()

您可以小心地对独立乌龟进行同样的操作。