#python #image #tkinter #fusion360
#python #изображение #tkinter #fusion360
Вопрос:
Я работаю над редактором Paint на python. Ниже приведен мой код редактора рисования с использованием tkinter. Теперь я хочу сохранить изображение чертежа в редакторе в виде файла изображения. Приведенный ниже код работает нормально, и он также сохраняет изображение, используя библиотеку PIL Python, но проблема в том, что я интегрирую этот редактор с инструментом Fusion360, который не поддерживает PIL?
Кто-нибудь может подсказать мне альтернативные способы сохранения изображения без PIL? Или есть какой-либо способ преобразовать содержимое tkinter в файл изображения.
from tkinter import *
from tkinter.filedialog import asksaveasfilename as saveAs
import PIL
from PIL import Image, ImageDraw
def save():
image1.save("usman.png")
def activate_paint(e):
global lastx, lasty
cv.bind('<B1-Motion>', paint)
lastx, lasty = e.x, e.y
def paint(e):
global lastx, lasty
x, y = e.x, e.y
cv.create_line((lastx, lasty, x, y), width=1)
draw.line((lastx, lasty, x, y), fill='black', width=1)
lastx, lasty = x, y
def clear():
cv.delete('all')
def exitt():
exit()
win = Tk()
win.title("Paint - made in Python")
lastx, lasty = None, None
cv = Canvas(win, width=640, height=480, bg='white')
image1 = PIL.Image.new('RGB', (640, 480), 'white')
draw = ImageDraw.Draw(image1)
cv.bind('<1>', activate_paint)
cv.pack(expand=YES, fill=BOTH)
save_ = Button(text="Save image", command=save)
save_.pack()
reset=Button(text='Reset canvas',command=clear)
reset.pack(side=LEFT)
_exit=Button(text='Exit',command=exitt)
_exit.pack(side=RIGHT)
win.mainloop()
Комментарии:
1. Честно говоря, вы можете делать скриншоты окна, но я ДУМАЮ, что эти библиотеки скриншотов также используют PIL для захвата изображения и его сохранения.
2. Есть много способов! Вы могли бы относительно легко написать генератор растровых файлов на стандартном python.