有没有办法在Python中使用turtle调整gif形状的大小?

4

我正在使用turtle制作一个小游戏,然后发现可以使用turtle.registershape(filename)来使用图像文件。我知道你可以使用turtle.shapesize或者turtle.resizemode("auto")来改变默认形状的大小,并且可以通过修改pensize来改变画笔尺寸,但是有没有办法使用这些方法来调整gif文件的大小?

import turtle

turtle.addshape("example.gif")

t = turtle.Turtle()

t.shape("example.gif")

t.resizemode("auto")
t.pensize(24)
t.stamp()

turtle.exitonclick()

我希望像这样工作,但是海龟显示正常,没有调整大小。


你好,请上传gif文件。 - saurabheights
3个回答

11

我查看了相关的turtle代码,我认为答案是:“不,turtle本身没有这个功能。”

引入tkinter作为turtle的基础,可以给我们带来一些有限的(整体的)海龟图像扩展和缩小的能力:

from tkinter import PhotoImage
from turtle import Turtle, Screen, Shape

screen = Screen()

# substitute 'subsample' for 'zoom' if you want to go smaller:
larger = PhotoImage(file="example.gif").zoom(2, 2)

screen.addshape("larger", Shape("image", larger))

tortoise = Turtle("larger")

tortoise.stamp()

tortoise.hideturtle()

screen.exitonclick()

如果您想要更多的灵活性,标准方法似乎是将图形在turtle/tkinter之外调整大小或者使用PIL模块动态调整大小并将其递交给turtle/tkinter。

2
答案是否定的。我查看了cpython库的源代码,并跟踪到了绘制图像方法的调用。请参见cpython库的_drawturtle方法,在该方法中调用drawImage方法而没有提供pensizeshapesize等变量的信息。我同意@cdlane的观点,您将不得不使用其他库来调整大小,但是有一个提示,如果您事先知道所需的图像大小集合,则可以在游戏启动时生成它们并加载,而不是在运行时调整大小。

0

不,通过turtle显式地调整gif的形状是不可能的。但是,您可以使用此网站手动调整形状大小:GIF RESIZER

此外,在您的代码中使用优化的gif(长度和宽度方面)。我也使用这种方法,非常有帮助。

谢谢!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接