windows 10, python 3.8
Использую последующий код , пытаюсь создать окно и нарисовав в нём какую-то цифру сохранить его на рабочий стол , но не получается , подскажите как исправить проблему. Заранее благодарю
Использую последующий код , пытаюсь создать окно и нарисовав в нём какую-то цифру сохранить его на рабочий стол , но не получается , подскажите как исправить проблему. Заранее благодарю
Python:
import tkinter as tk
from tkinter import messagebox
from PIL import Image, ImageDraw
# Размеры окна и холста
window_width = 280
window_height = 310
canvas_width = 280
canvas_height = 280
# Создание окна
window = tk.Tk()
window.title("Рисование")
window.geometry(f"{window_width}x{window_height}")
# Создание холста для рисования
canvas = tk.Canvas(window, width=canvas_width, height=canvas_height, bg="white")
canvas.pack()
# Функция для сохранения изображения
def save_image():
# Создание пустого изображения
image = Image.new("L", (canvas_width, canvas_height), "white")
# Создание объекта для рисования на изображении
draw = ImageDraw.Draw(image)
# Получение данных о холсте
data = canvas.postscript(colormode="gray")
# Создание временного файла PNG на рабочем столе
file_path = "C:/Users/username(я указал свой)/Desktop/drawing.png"
try:
# Сохранение временного файла
image.save(file_path, format="PNG")
# Изменение размера изображения до 28x28 пикселей
resized_image = image.resize((28, 28), Image.ANTIALIAS)
# Перезапись файла с измененным размером
resized_image.save(file_path, format="PNG")
messagebox.showinfo("Сохранение", "Изображение сохранено на рабочий стол.")
except:
messagebox.showerror("Ошибка", "Не удалось сохранить изображение.")
# Функция для обработки нажатия левой кнопки мыши
def start_drawing(event):
canvas.bind("<B1-Motion>", draw)
# Функция для обработки движения мыши и рисования на холсте
def draw(event):
x = event.x
y = event.y
r = 7 # Размер кисти
# Рисование на холсте
canvas.create_oval(x - r, y - r, x + r, y + r, fill="black")
# Привязка функции start_drawing к событию нажатия левой кнопки мыши
canvas.bind("<Button-1>", start_drawing)
# Создание кнопки для сохранения изображения
save_button = tk.Button(window, text="Сохранить", command=save_image)
save_button.pack()
# Запуск главного цикла обработки событий
window.mainloop()
Последнее редактирование: