Как на Python сделать картинку с подсветкой текста?
Вот таким кодом на HTML могу сделать так, чтобы текст подсвечивался:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Тест</title>
</head>
<body style="background-color: black; color: white; text-shadow: 1px 0 50px white; font-size: 50px;">
<div style="top: 100px; left: 100px; position: absolute;">Тестовый текст</div>
</body>
</html>
Подсветка работает от этой строчки -> text-shadow: 1px 0 50px white;
Как мне сделать такой же эффект только на Python?
Ответы (1 шт):
Автор решения: Amgarak
→ Ссылка
Используйте библиотеку Pillow. Вот небольшой пример:
from PIL import Image, ImageDraw, ImageFilter, ImageFont
# Параметры для будущего изображения
width = 400
height = 200
background_color = (0, 0, 0) # Задаём цвет фона - черный
image = Image.new("RGB", (width, height), background_color)
# ImageDraw для рисования на изображении
draw = ImageDraw.Draw(image)
# ImageFont для установки шрифта и размера
font_size = 50
font = ImageFont.truetype("times.ttf", font_size)
# Добавляем текст
text = "Тестовый текст"
text_color = (255, 255, 255) # Белый цвет
# Определяем координаты текста
text_position = (35, (height - font_size) // 2)
draw.text(text_position, text, fill=text_color, font=font)
# Что бы сделать свечение текста, добавим прямоугольник
# Определяем координаты прямоугольника
left_top = (30, (height - font_size) // 2)
right_bottom = (380, 130)
# Создаем новое изображение для прямоугольника
rectangle_image = Image.new("RGBA", image.size, (0, 0, 0, 0))
draw_rectangle = ImageDraw.Draw(rectangle_image)
rectangle_color = (255, 255, 255, 100) # Белый цвет с прозрачностью 100
draw_rectangle.rectangle([left_top, right_bottom], fill=rectangle_color)
# Размываем прямоугольник
blurred_rectangle = rectangle_image.filter(ImageFilter.GaussianBlur(25))
# Добавляем изображение прямоугольника к изображению с черным фоном и нашим текстом
image = Image.alpha_composite(image.convert("RGBA"), blurred_rectangle)
# Сохраняем изображение
image.save("test_text.png")
