Чтобы избежать того, чтобы нарисованная фигура из библиотеки Pillow вставлялась поверх текста, вы можете использовать полупрозрачность (alpha blending).
Pillow предоставляет функциональность для работы с полупрозрачностью путем установки значения прозрачности для каждого пикселя изображения. Меньшее значение прозрачности означает большую непрозрачность, что приведет к меньшей видимости объекта.
Вот пример кода, который иллюстрирует, как создать полупрозрачную фигуру, которая не будет вставаться поверх текста:
from PIL import Image, ImageDraw # Создание изображения с белым фоном и размером 500x500 пикселей image = Image.new("RGBA", (500, 500), (255, 255, 255, 255)) # Создание объекта ImageDraw для рисования на изображении draw = ImageDraw.Draw(image) # Заполнение полупрозрачного прямоугольника с координатами (100, 100, 400, 400) # и заданным значением прозрачности (128) draw.rectangle((100, 100, 400, 400), fill=(0, 0, 255, 128)) # Добавление текста на изображение text = "Пример текста" draw.text((200, 200), text, fill=(0, 0, 0), align="center") # Сохранение изображения image.save("result.png")
В этом примере мы создаем новое изображение размером 500x500 пикселей с белым фоном и полностью непрозрачным (значение альфа-канала равно 255). Затем мы создаем объект ImageDraw и используем его для заполнения прямоугольника с координатами (100, 100, 400, 400) и установкой значения прозрачности равным 128 (что соответствует полупрозрачности). Затем мы добавляем текст на изображение с использованием метода draw.text()
. Наконец, мы сохраняем изображение в файл с именем "result.png".
При выполнении этого кода вы получите изображение, где фигура будет полупрозрачной и не затрет текст, что позволяет видеть текст сквозь фигуру.
При необходимости вы можете настроить прозрачность фигуры, изменяя значение альфа-канала в диапазоне от 0 (полностью прозрачный) до 255 (полностью непрозрачный).