Как создать приложение Paint с помощью Python

Простой инструмент для рисования — наиболее распространенное приложение, которое можно найти на большинстве компьютеров. Это позволяет художникам совершать ошибки, не беспокоясь, выбирать любой цвет одним нажатием кнопки и мгновенно менять размер кисти. Вы можете использовать его для создания логотипов брендов, концептуализации пользовательских интерфейсов и аннотирования диаграмм.

Tkinter и модули Pillow

Чтобы создать приложение для рисования, вам понадобятся модули Tkinter и Pillow. Tkinter — одна из лучших платформ Python, которую вы можете использовать для настройки своего графического интерфейса. Это стандартный модуль графического интерфейса Python для создания настольных приложений. Tkinter предлагает ряд различных виджетов, таких как метки, записи, холст и кнопки.

Pillow, ответвление библиотеки изображений Python (PIL), представляет собой модуль обработки изображений для Python. С помощью Pillow вы можете открывать, изменять размер, переворачивать и обрезать фотографии. Вы можете конвертировать форматы файлов, создавать приложения для поиска рецептов и получать случайные изображения.

Чтобы установить эти модули, запустите:

пип установить тк подушку

Определить структуру приложения для рисования.

Начните с импорта необходимых модулей. Определите класс DrawApp. Установите заголовок, цвет курсора и цвет ластика. Сделайте так, чтобы приложение открывалось на весь экран. Вызовите метод setup_widgets.

импортировать tkinter как tk из tkinter.ttk импортировать масштаб из tkinter import colorchooser, filedialog, messagebox импортировать PIL.ImageGrab как класс ImageGrab DrawApp: def __init__(self, root): self.root = root self.root.title(“Kids’ Paint App”) self.root.attributes(“-fullscreen”, True) self.pointer = “black” self.erase = “white” self.setup_widgets()

Определите метод с именем setup_widgets. Указывает метку, отображающую заголовок. Установите родительский элемент, контент, который вы хотите отобразить, стиль шрифта, цвет фона, цвет текста. Определяет рамку для цветовой палитры. Установите родительский элемент, содержимое, которое он будет отображать, стиль шрифта и ширину границы. Установите форму границы по желанию и цвет фона на белый.

def setup_widgets(self): self.title_label = tk.Label( self.root, text=”Детское приложение для рисования”, font=(“Comic Sans MS”, 30), bg=”lightblue”, fg=”purple” , ) self.title_label.pack(fill=tk.X, Pady=10) self.color_frame = tk.LabelFrame( self.root, text=”Colors”, font=(“Comic Sans MS”, 15), bd= 5, рельеф=tk.RIDGE, bg=”white”, ) self.color_frame.place(x=10, y=80, ширина=90, высота=180)

Укажите цветовую группу для палитры в списке. Повторите это и создайте кнопки для каждого элемента. Установите родительский элемент, его цвет фона, ширину границы и форму. Кроме того, установите ширину и команду для каждой кнопки, которая будет запускаться при нажатии. Расположите все компоненты с соответствующими отступами и цветами в соответствии с набором обеих частей.

цвета = ( “синий”, “красный”, “зеленый”, “оранжевый”, “фиолетовый”, “черный”, “желтый”, “фиолетовый”, “розовый”, “золотой”, “коричневый”, “индиго” , ) i, j = 0, 0 для цвета в цветах: tk.Button( self.color_frame, bg=color, bd=2, рельеф=tk.RIDGE, ширина=3, команда=lambda col=color: self.select_color (col), .grid(row=i,column=j,padx=2,pady=2) i += 1, если i == 4: i = 0 j = 1

Аналогичным образом определите кнопку для ластика: одну для очистки экрана и одну для сохранения изображения.

self.eraser_btn = tk.Button( self.root, text=”Ластик”, bd=4, bg=”white”, команда=self.eraser, ширина=9, рельеф=tk.RIDGE, шрифт=(“Comic Sans MS”, 12), ) self.eraser_btn.place(x=10, y=310) self.clear_screen_btn = tk.Button( self.root, text=”Очистить экран”, bd=4, bg=”white”, команда=self.clear_screen, ширина=12, рельеф=tk.RIDGE, шрифт=(“Comic Sans MS”, 12), ) self.clear_screen_btn.place(x=10, y=370) self.save_as_btn = tk.Button ( self.root, text=”Сохранить рисунок”, bd=4, bg=”white”, команда=self.save_as, ширина=12, рельеф=tk.RIDGE, шрифт=(“Comic Sans MS”, 12), ) self.save_as_btn.place(x=10, y=430) self.bg_btn = tk.Button( self.root, text=”Background”, bd=4, bg=”white”, command=self.canvas_color, width =12, рельеф=tk.RIDGE, шрифт=(“Comic Sans MS”, 12), ) self.bg_btn.place(x=10, y=490) self.pointer_frame = tk.LabelFrame( self.root, text= “Размер”, bd=5, bg=”белый”, шрифт=(“Comic Sans MS”, 15, “жирный”), рельеф=tk.RIDGE, )

Определите виджет масштабирования, чтобы увеличить или уменьшить размер курсора или ластика. Установите родительский элемент, ориентацию, протяженность и длину в пикселях. Определите холст и установите родительский элемент, цвет фона и ширину границы. Также установите форму, соответствующую ее ширине и высоте.

Найдите холст с соответствующими координатами и установите привязку в левом верхнем углу. Свяжите B1-Motion с функцией рисования. B1 просто удерживает левую кнопку мыши, а Motion просто перемещается. Обычно вы используете его для отслеживания движений мыши, нажимая левую кнопку мыши.

self.pointer_frame.place(x=10, y=580, height=150, width=70) self.pointer_size = Scale( self.pointer_frame, orient=tk.VERTICAL, from_=48, to=1, length=120) self.pointer_size.set(1) self.pointer_size.grid(row=0, columns=1,padx=15) self.canvas = tk.Canvas( self.root, bg=”white”, bd=5, рельеф= tk.GROOVE, height=650, width=1300 ) self.canvas.place(x=160, y=120,nchor=”nw”) self.canvas.bind(“”, self.paint)

Определить возможности приложения для рисования

Определите метод, раскрасьте . Чтобы рисовать картинки, это приложение будет непрерывно рисовать маленькие овалы. Вычтите 2 из координат x и y этого события мыши, чтобы определить верхний левый угол овала. Добавьте 2, чтобы определить нижний правый угол овала. Создайте овал, используя эти ограниченные координаты.

Установите цвет заливки, цвет границы и ширину для каждого выделения курсора.

def Paint(self, event): x1, y1 = (event.x – 2), (event.y – 2) x2, y2 = (event.x + 2), (event.y + 2) self.canvas. create_oval( x1, y1, x2, y2, fill=self.pointer, контур=self.pointer, ширина=self.pointer_size.get(), )

Определите 3 функции: select_color, Eraser и Clear_screen. Метод select_color принимает цвет и соответствующим образом устанавливает курсор. Метод Eraser устанавливает курсор на эффект, подобный ластику, и заставляет его рисовать прозрачные линии. Методclear_screen очищает весь элемент на холсте.

def select_color(self, col): self.pointer = col def ластик(self): self.pointer = self.erase defclear_screen(self): self.canvas.delete(“все”)

Определите метод Canvas_color. Откройте палитру цветов со всеми разными цветами. Откройте палитру цветов, содержащую все разные цвета. Возвращает кортеж, содержащий цвета в формате RGB и шестнадцатеричном формате. Если пользователь выбирает цвет, используйте метод настройки, чтобы установить цвет фона. Установите цвет ластика такой же, как цвет фона.

def Canvas_color(self): цвет = colorchooser.askcolor(), если цвет: self.canvas.configure(background=color(1)) self.erase = color(1)

Определите метод save_as. Открывает диалоговое окно файла, предлагающее пользователю выбрать имя файла и путь. Если пользователь выбирает ссылку, используйте класс Pillow ImageGrab для захвата всего экрана. Обрезайте изображение по определенным координатам, чтобы получить область холста. Поэкспериментируйте с координатами, чтобы получить нужную деталь.

Сохраните результаты по нужному пути к файлу. Появится окно, уведомляющее пользователя о том, что программа успешно сохранила рисунок как изображение. В случае возникновения ошибки отображается соответствующая ошибка.

def save_as(self): file_path = filedialog.asksaveasfilename( defaultextension=”.jpg”, filetypes=((“Файлы изображений”, “*.jpg”)) ), если file_path: попробуйте: y = 148 x = 200 y1 = 978 x1 = 1840 ImageGrab.grab().crop((x, y, x1, y1)).save(file_path) messagebox.showinfo(“Сохранить рисунок”, “Файл изображения успешно сохранен!”), за исключением исключения в виде e: messagebox. showerror(“Ошибка”, f”Не удалось сохранить файл изображения: {e}”)

Создайте экземпляры классов Tk и DrawApp. Функция mainloop() сообщает Python о необходимости зацикливать события Tkinter и прослушивать события, пока вы не закроете окно.

if __name__ == “__main__”: root = tk.Tk() app = DrawApp(root) root.mainloop()

Протестируйте различные функции рисования в Python.

Запустив программу рисования, вы увидите приложение с цветовой палитрой, 4 кнопками, ползунком и холстом для рисования:

Как создать приложение Paint с помощью Python. Рисунок 1.

Нажмите на любой цвет, чтобы выбрать его. Затем вы можете рисовать на холсте этим цветом с помощью левой кнопки мыши:

Как создать приложение Paint с помощью Python. Рисунок 2.

Если вы нажмете кнопку «Ластик» и перетащите ползунок вертикально вверх, вы выделите ластик и увеличите его размер. Проверьте работу ластика, проведя им по рисунку, чтобы стереть ненужные штрихи.

Как создать приложение Paint с помощью Python. Рисунок 3.

При нажатии кнопки «Очистить экран» программа удаляет предыдущий рисунок. Нажмите кнопку «Фон», чтобы открыть цветовую палитру и использовать ее для изменения цвета фона.

Как создать приложение Paint с помощью Python. Рисунок 4.

При нажатии кнопки «Сохранить рисунок» откроется диалоговое окно файла. Выберите путь и назовите файл. Эта программа сохранит его.

Как создать приложение Paint с помощью Python. Рисунок 5.

Вы можете расширить возможности приложения для рисования, добавив дополнительные параметры формы, выбрав стили кисти, непрозрачность, наложив наклейки и т. д. Добавьте параметры отмены, повтора, изменения размера и переворота изображений. Это делает процесс рисования более плавным.

Для создания фигур вы можете использовать такие методы, как create_rectangle, create_oval, create_line, create_polygon. Чтобы добавить изображения, используйте create_text и create_image.

Выше описано, как создать приложение для рисования с помощью Python. Надеюсь, статья окажется для вас полезной.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *