Is there any way to resize a gif shape with turtle in Python?

后端 未结 2 1963
南方客
南方客 2021-01-27 03:16

I\'m using turtle to make a little game and realized I could use image files with turtle.registershape(filename). I know you can resize the default shapes with

相关标签:
2条回答
  • 2021-01-27 03:31

    I reviewed the applicable turtle code and I believe the answer is, "No, not within turtle itself."

    Bringing in tkinter, which underlies turtle, gives us some limited (integral) turtle image expansion and reduction capability:

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

    If you want more flexibility, the standard approach seems to be to either resize the graphic outside of turtle/tkinter or use the PIL module to resize the graphic dynamically and hand it to turtle/tkinter.

    0 讨论(0)
  • 2021-01-27 03:36

    The answer is no. I went through the source code of cpython library and tracked to the draw image method call. See _drawturtle method of cpython library, where drawImage method is called with no information of variables like pensize or shapesize. I agree with @cdlane that you will have to use other resize using other libraries, however one tip, if you know beforehand the set of image sizes you will need, you can generate them and load during the game start instead of resizing at the runtime.

    0 讨论(0)
提交回复
热议问题