На сегодняшний день Python один из самых популярных языков программирования. С этим наверное трудно поспорить, так как возможности языка достаточно уникальны. Да и простота в использовании позволяет даже новичкам делать довольно успешные проекты.
Сегодня мы рассмотрим один не самый популярный, но в тоже время интересный метод который позволяет наносить рисунки поверх фотографий. Также можно использовать в качестве ластика который удаляет пиксели с холста.
Тоже самое можно делать и с помощью javascript но мы будем делать с помощью Python.
Функционал Python для рисования на фото может быть полезен во многих сферах. Некоторые его применения включают:
-
Редактирование и улучшение фотографий: с помощью библиотеки PIL (Python Imaging Library) или OpenCV можно изменять цвета, добавлять фильтры, улучшать резкость и контрастность, удалять шумы и т. д.
-
Создание инфографики: это может быть полезно для образовательных материалов, презентаций, отчетов или статей. Используя Python и его библиотеки для рисования (например, Pillow или matplotlib), вы можете создавать диаграммы, графики, рисунки и другие визуальные элементы, чтобы улучшить понимание информации.
-
Автоматизированная обработка и аннотация изображений. С помощью Python можно создавать скрипты для обработки большого количества фотографий, добавлять надписи, рамки, стрелки, примечания или маскировать определенные области на изображениях.
-
Генерация искусственных изображений, с помощью Python и его библиотек, таких как NumPy или Pygame, можно создавать новые изображения с нуля или на основе существующих шаблонов. Это может быть полезно в компьютерной графике, визуальных эффектах, геймдеве и других областях, где требуется генерация изображений.
Сегодня мы рассмотрим функционал рисования на фото с использованием манипуляции пикселей в изображении инструментами библиотеки для работы с графикой, такими как Pillow для Python. Ниже приведен пример кода, который позволит рисовать на фото белым цветом с помощью мыши при запуске из кода Python:
import tkinter as tk from PIL import Image, ImageTk, ImageDraw # Загрузим изображение и инициализируем рисование image_path = "your_image.jpg" # Замените на путь к вашему изображению image = Image.open(image_path) draw = ImageDraw.Draw(image) # Размеры кисти brush_size = 5 def paint(event): x1, y1 = (event.x - brush_size), (event.y - brush_size) x2, y2 = (event.x + brush_size), (event.y + brush_size) draw.ellipse([x1, y1, x2, y2], fill='white') # Обновим изображение на канве canvas.image = ImageTk.PhotoImage(image) canvas.create_image(0, 0, image=canvas.image, anchor=tk.NW) # Создаем графический интерфейс root = tk.Tk() # Канва для отображения картинки canvas = tk.Canvas(root, width=image.width, height=image.height) canvas.pack() # Отображаем изображение на канве canvas_image = ImageTk.PhotoImage(image) canvas.create_image(0, 0, image=canvas_image, anchor=tk.NW) # Привязываем событие движения мыши к функции paint() canvas.bind('', paint) # Запускаем графический интерфейс root.mainloop()
Сохраните этот код в файл (например, image_painter.py) и запустите его. Вы сможете рисовать на фото, предварительно открыв файл и заменив "your_image.jpg" на путь к вашему изображению. Двигая мышь с зажатой левой кнопкой, вы будете рисовать белым цветом.
В этом примере используется модуль tkinter для создания окна, Pillow для работы с изображением и рисованием на нем. Чтобы изменить размер кисти, отредактируйте значение переменной brush_size