Сохраните изображение с помощью tkinter в Python без PIL

#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.