Tôi muốn tìm ra cách lưu hình ảnh đồ họa bitmap hoặc vector sau khi tạo bản vẽ với mô-đun rùa của python. Sau một chút googling tôi không thể tìm thấy một câu trả lời dễ dàng. Tôi đã tìm thấy một mô-đun gọi là canvas2svg, nhưng tôi rất mới để python và tôi không biết làm thế nào để cài đặt các mô-đun. Có cách nào được xây dựng để lưu hình ảnh của bức tranh rùa không? Nếu không phải nơi nào tôi đặt các mô-đun tùy chỉnh cho python trên một máy Ubuntu?Mô-đun Rùa Python- Lưu hình ảnh
Trả lời
from Tkinter import *
from turtle import *
import turtle
forward(100)
ts = turtle.getscreen()
ts.getcanvas().postscript(file="duck.eps")
Điều này sẽ giúp bạn; Tôi đã có cùng một vấn đề, tôi đã google, nhưng đã giải quyết nó bằng cách đọc nguồn của mô-đun rùa.
Đối tượng canvas (tkinter) có chức năng postscript; bạn co thể sử dụng no.
Mô-đun rùa có "màn hình" cung cấp cho bạn "màn hình rùa" cung cấp cho bạn canvas Tiknter mà rùa đang vẽ.
Điều này sẽ giúp bạn lưu ở định dạng đóng gói PostScript, vì vậy bạn có thể sử dụng nó trong GIMP chắc chắn nhưng cũng có những người xem khác. Hoặc, bạn có thể làm cách nào để tạo một .gif từ trang này.
Trong rùa của python 2,7, nó đã có chức năng postscript. Vì vậy, bạn không cần phải nhập riêng Tkinter. –
Tôi chỉ muốn thêm rằng tệp EPS được lưu ở cùng một vị trí với tập lệnh. –
Tôi đã viết một lớp SvgTurtle
hỗ trợ giao diện Rùa tiêu chuẩn từ Python và ghi tệp SVG bằng mô-đun svgwrite. Cài đặt svgwrite, tải svg_turtle.py
, và sau đó gọi nó như thế này:
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()
Tôi tin rằng bạn nên có 'draw_spiral()' -> 'draw_spiral()' Trong 'def write_file' –
Tôi giả sử bạn có nghĩa là' draw_spiral() '->' draw_func() ', @ Mr.Weathers. Bạn nói đúng, đó là những gì tôi muốn làm, vì vậy tôi đã sửa nó. –
Trong trường hợp bạn muốn minh bạch lưu hình ảnh vào cuối năm thực hiện chương trình (semi-hữu ích cho việc hỗ trợ với nhiệm vụ sinh viên chấm điểm mà chấm dứt), xin vui lòng kiểm tra: https://github.com/ucsb-cs/cTurtle_screenshot – bboe