Python'un kaplumbağa modülü ile çizim oluşturduktan sonra bir bitmap veya vektör grafik görüntüsünün nasıl kaydedileceğini öğrenmek istiyorum. Biraz uğraştıktan sonra kolay bir cevap bulamıyorum. canvas2svg adında bir modül buldum, ancak python için çok yeniyim ve modülü nasıl kuracağımı bilmiyorum. Kaplumbağa tuvalinin resimlerini kaydetmek için bazı yollar var mı? Eğer değilse, Ubuntu makinesinde python için özel modüller nereye koyabilirim?Python Turtle Module- Resim kaydetme
cevap
from Tkinter import *
from turtle import *
import turtle
forward(100)
ts = turtle.getscreen()
ts.getcanvas().postscript(file="duck.eps")
Bu size yardımcı olacaktır; Aynı problemi yaşadım, Googled, ama kaplumbağa modülünün kaynağını okuyarak çözdüm.
Tuval (tkinter) nesnesinin postscript işlevi vardır; onu kullanabilirsin.
Kaplumbağa modülü, size kaplumbağanın çizim yaptığı Tiknter tuvalini veren "kaplumbağa ekranı" nı veren "kepekli" ekrana sahiptir.
Bu, sizi kapsüllenmiş PostScript biçiminde kaydeder, böylece GIMP'de de kullanabilirsiniz, ancak başka görüntüleyenler de vardır. Veya Google'ın bundan nasıl bir .gif yapmasını sağlayabilirsiniz.
python 2.7 kaplumbağasında, zaten postscript işlevi var. Yani, Tkinter'i ayrı olarak almanıza gerek yoktur. –
Sadece EPS dosyasının betikle aynı yere kaydedildiğini eklemek istiyorum. –
Python'dan standart Kaplumbağa arabirimini destekleyen bir SvgTurtle
sınıfı yazdım ve svgwrite modülünü kullanarak bir SVG dosyası yazıyor. Böyle diyoruz, sonra svgwrite takın svg_turtle.py
indirebilir ve:
from turtle import * # @UnusedWildImport
import svgwrite
from svg_turtle import SvgTurtle
def draw_spiral():
fillcolor('blue')
begin_fill()
for i in range(20):
d = 50 + i*i*1.5
pencolor(0, 0.05*i, 0)
width(i)
forward(d)
right(144)
end_fill()
def write_file(draw_func, filename, size):
drawing = svgwrite.Drawing(filename, size=size)
drawing.add(drawing.rect(fill='white', size=("100%", "100%")))
t = SvgTurtle(drawing)
Turtle._screen = t.screen
Turtle._pen = t
draw_func()
drawing.save()
def main():
write_file(draw_spiral, 'example.svg', size=("500px", "500px"))
print('Done.')
if __name__ == '__main__':
main()
"Draw_spiral()" -> 'draw_spiral()' '' write_dosyası '' olmalıdır 'ini yazmanız gerekir –
' draw_spiral() '->' draw_func() ', @ Mr.Weathers. Haklısın, yapmak istediğim buydu, ben de düzeltdim. –
şeffaf programın yürütme sonunda (sonlandırmak sınıflandırma öğrenci atamaları ile yardımcı olmak için yarı faydalıdır) bir görüntüyü kaydetmek istediğiniz durumunda, lütfen göz atın: https://github.com/ucsb-cs/cTurtle_screenshot – bboe