我制作了一個可以繪制分形、圓形和螺旋線的奇怪程式,我已經嘗試了幾個小時來找到一種將海龜輸出保存到影像檔案(最好是 png 或 jpeg)的方法。嘗試在海龜上使用 canvasvg.saveall() 時,我得到“_Screen”物件沒有屬性“tk”。這是代碼:
import turtle
import random
import canvasvg
root = turtle.Screen()
drawing = 1
def save():
canvasvg.saveall("spircles.svg", root)
print("turning angle:")
turningangle = float(input())
print("size:")
forward = float(input())
print("spiral:")
try:
spiral = float(input())
if spiral == None:
spiral = random.random()
except:
pass
spiral = random.random()
turtle = turtle.Turtle(visible=False)
turtle.speed(speed=0)
turtle.hideturtle()
turtle.ht()
print("drawing. spiral:", spiral)
try:
while drawing == 1:
root.listen()
root.onkey(save, "s")
turtle.left(turningangle)
turtle.forward(forward)
turningangle = spiral
spiral = (spiral / turningangle)
except Exception as e:
drawing = 0
pass
print("done. press enter to exit. error:", e)
input()
exit()
turtle.mainloop()
有人知道這樣做的簡單方法嗎?已經嘗試過 PIL 并沒有奏效。我也不想安裝第三方程式。我希望能夠使用 pip 安裝一些模塊(如果需要)并且能夠輕松運行它。當用戶按“s”時,它應該保存到影像檔案中。
我已經嘗試過 PIL 和 canvasvg.saveall(),我想要 canvasvg.saveall(),因為這似乎是最簡單的方法。
uj5u.com熱心網友回復:
雖然 Turtle 用于tkinter.Canvas繪制形狀,但Screen物件不是tkinter.Canvas物件,也根本不是物件tkinter.Widget。Turtle 為這個任務提供了一個方法,它被呼叫turtle.getcanvas,你可以在你的Screenobject上使用它。所以canvas = root.getcanvas()應該作業得很好。
看起來您可以使用canvasvg.saveall(filename, canvas),但請注意,它們宣告并非所有專案都受支持。
def save():
canvas = root.getcanvas()
canvasvg.saveall("spircles.svg", canvas)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/523537.html
上一篇:python影像統一變換
下一篇:如何使此影像在我的導航欄中作業?
