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

问题描述 投票:0回答:4

我正在使用海龟制作一个小游戏,并意识到我可以使用带有

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()

我想要这样的东西工作,但海龟正常显示,没有调整大小。

python python-2.7 gif turtle-graphics python-turtle
4个回答
11
投票

我查看了适用的海龟代码,我相信答案是,“不,不在海龟本身内。”

引入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
方法时没有像
pensize
shapesize
这样的变量信息。我同意@cdlane,您将必须使用其他库来使用其他调整大小,但是有一个提示,如果您事先知道所需的图像大小集,您可以生成它们并在游戏启动期间加载,而不是在运行时调整大小.


0
投票

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

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

谢谢!


0
投票

如果您有其他转换为 gif 的文件,您可以使用此网站:www.freeconvert.com。它可以将您的文件转换为 gif,同时您可以调整其大小。

© www.soinside.com 2019 - 2024. All rights reserved.