JavaRush /Курси /Python SELF UA /Малюємо: тексти, лінії та водяні знаки

Малюємо: тексти, лінії та водяні знаки

Python SELF UA
Рівень 46 , Лекція 0
Відкрита

1. Додавання тексту на зображення

Для додавання тексту на зображення в Pillow використовується модуль ImageDraw, який надає метод text() для відображення тексту на заданих координатах.

Просте додавання тексту

                
from PIL import ImageDraw, ImageFont

# Створюємо об'єкт для малювання
draw = ImageDraw.Draw(image)

# Додавання тексту на зображення
text = "Приклад тексту"
draw.text((50, 50), text, fill="white")

# Збереження зображення з текстом
image.save("text_example.jpg")
                
            

У цьому прикладі текст "Приклад тексту" додається на координати (50, 50). Параметр fill задає колір тексту, який можна вказати як рядок ("white", "black") або у форматі RGB ((255, 255, 255)).

Налаштування шрифту тексту

За замовчуванням Pillow використовує стандартний шрифт. Щоб вибрати інший шрифт і задати його розмір, використовуй ImageFont.truetype(). Переконайся, що файл шрифту доступний у твоїй системі.

                
# Завантаження шрифту
font = ImageFont.truetype("arial.ttf", 36)

# Додавання тексту з користувацьким шрифтом
draw.text((50, 100), text, font=font, fill="yellow")
image.save("text_custom_font_example.jpg")
                
            

Тут ми використовуємо шрифт arial.ttf з розміром 36 пікселів. Якщо потрібного шрифту немає, ти можеш завантажити його і вказати шлях до файлу.

2. Додавання водяного знака

Водяний знак — це напівпрозорий текст або зображення, яке накладається на фотографію для захисту від копіювання. З його допомогою можна додавати логотипи або інформацію про автора. У Pillow можна створити простий текстовий водяний знак.

Текстовий водяний знак

                
# Створюємо об'єкт для малювання
draw = ImageDraw.Draw(image)

# Текст і шрифт для водяного знака
watermark_text = "© 2023 My Company"
font = ImageFont.truetype("arial.ttf", 24)

# Визначаємо координати для розміщення водяного знака
width, height = image.size
text_width, text_height = draw.textsize(watermark_text, font=font)
x = width - text_width - 10
y = height - text_height - 10

# Додавання водяного знака у правий нижній кут
draw.text((x, y), watermark_text, font=font, fill=(255, 255, 255, 128))
image.save("watermarked_example.jpg")
                
            

У цьому прикладі текстовий водяний знак додається у правий нижній кут зображення. Ми розраховуємо x і y так, щоб водяний знак був трохи зміщений від межі зображення.

3. Додавання графічних елементів

Окрім тексту, Pillow дозволяє малювати базові графічні елементи, такі як лінії, прямокутники, кола та еліпси. Це корисно для створення рамок, виділення областей і додавання геометричних фігур.

Малювання ліній

Для малювання ліній використовуй метод line(), який приймає координати початку і кінця лінії.

                
# Малюємо лінію від лівого верхнього кута до правого нижнього
draw.line((0, 0, width, height), fill="red", width=5)
image.save("line_example.jpg")
                
            

Цей код малює червону лінію, що проходить по діагоналі від лівого верхнього до правого нижнього кута зображення.

Малювання прямокутників

Прямокутник малюється за допомогою методу rectangle(), який приймає координати верхнього лівого і нижнього правого кутів.

                
# Малюємо прямокутник
draw.rectangle((50, 50, 200, 200), outline="blue", width=3)
image.save("rectangle_example.jpg")
                
            

Тут створюється прямокутник з синім контуром і товщиною лінії 3 пікселі. Ти також можеш використовувати параметр fill для заливки прямокутника кольором.

Малювання кіл та еліпсів

Метод ellipse() дозволяє малювати кола та еліпси. Щоб намалювати коло, вкажи однакові розміри для ширини і висоти.

                
# Малюємо коло
draw.ellipse((150, 150, 250, 250), outline="green", width=4)
image.save("circle_example.jpg")
                
            

У цьому прикладі створюється коло з центром у точці (200, 200). Якщо задати різні розміри для ширини і висоти, вийде еліпс.

Малювання багатокутників

Для малювання багатокутників використовуй метод polygon(), який приймає координати вершин фігури.

                
# Малюємо трикутник
draw.polygon([(100, 100), (150, 50), (200, 100)], outline="purple", fill="orange")
image.save("polygon_example.jpg")
                
            

Цей код малює трикутник з помаранчевою заливкою і пурпурним контуром. Ти можеш створити фігуру будь-якої форми, передавши координати її вершин.

4. Приклади

Приклад створення композиції з текстом і графікою

Об'єднаємо все вищезазначене і створимо зображення з текстом, водяним знаком і графічними елементами.

                
from PIL import Image, ImageDraw, ImageFont

# Завантаження зображення
image = Image.open("example.jpg")
draw = ImageDraw.Draw(image)

# Додавання тексту
font = ImageFont.truetype("arial.ttf", 36)
draw.text((50, 50), "Demo Text", font=font, fill="yellow")

# Додавання водяного знака у правий нижній кут
watermark_text = "© 2023 My Company"
font_watermark = ImageFont.truetype("arial.ttf", 24)
width, height = image.size
text_width, text_height = draw.textsize(watermark_text, font=font_watermark)
x = width - text_width - 10
y = height - text_height - 10
draw.text((x, y), watermark_text, font=font_watermark, fill=(255, 255, 255, 128))

# Малювання лінії, прямокутника і кола
draw.line((0, 0, width, height), fill="red", width=5)
draw.rectangle((50, 50, 200, 200), outline="blue", width=3)
draw.ellipse((150, 150, 250, 250), outline="green", width=4)

# Збереження результату
image.save("final_composition_example.jpg")
                
            

Цей приклад створює зображення з текстом, водяним знаком і кількома графічними елементами (лінія, прямокутник і коло). Такі композиції можуть використовуватися для презентацій, блогів і створення професійно оформлених зображень.

Практичне застосування

  • Маркування та захист зображень: Водяні знаки допомагають захистити зображення від несанкціонованого використання, а текст дозволяє додати інформацію про автора або компанію.
  • Підготовка зображень для соціальних мереж: Додавання тексту і графіки дозволяє підготувати зображення до публікації, додавши до них додаткову інформацію.
  • Інфографіка та візуалізація даних: Використання графічних елементів, таких як лінії і фігури, дозволяє створювати прості графіки та діаграми, що робить Pillow корисним для створення інфографіки.
Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ