Я не совсем уверен, о чем вы просите, но я предполагаю, что вы хотите написать метку «под» изображением. Вот пример с библиотекой wand.
from wand.image import Image
from wand.compat import nested
from wand.color import Color
from wand.font import Font
with nested(Image(filename='logo:'),
Image(filename='null:')) as (source, text):
text.font = Font('Impact', 64)
text.read(filename='label:Hello world!')
largest_width = max(source.width, text.width)
offset = (largest_width - min(source.width, text.width)) / 2
with Image(width=largest_width,
height=source.height + text.height,
background=Color('WHITE')) as dst:
dst.composite(source, 0, 0)
dst.composite(text, int(offset), source.height)
dst.save(filename="output.png")
Обзор
with nested(Image(filename='logo:'),
Image(filename='null:')) as (source, text):
Создайте два изображения. Вы будете нести ответственность за замену logo:
изображения вашим буфером ByteIO. Изображение null:
является заполнителем для размещения экземпляра жезла.
text.font = Font('Impact', 64)
text.read(filename='label:Hello world!')
Это определяет шрифт и текст для рисования. Протокол label:
можно заменить на caption:
для дополнительного поведения.
with Image(width=largest_width,
height=source.height + text.height,
background=Color('WHITE')) as dst:
Создайте третье «пустое» изображение, достаточно большое, чтобы включить оба изображения.
dst.composite(source, 0, 0)
dst.composite(text, int(offset), source.height)
Скопируйте данные изображения из source
и text
в новое изображение.
person
emcconville
schedule
27.03.2018
with Image
, указав изображение, на котором вы хотите рисовать. - person fmw42   schedule 27.03.2018