Вы можете найти реализацию этого в http://tools.jedutils.com/tools/center-text-image
Вы можете использовать эту страницу для создания изображения прямо здесь, вместо того, чтобы реализовывать процедуру самостоятельно, но код также включен на странице.
Следуя советам Николь
from PIL import Image, ImageDraw, ImageFont, ImageFilter
import StringIO
filter_dict = {
'BLUR' : ImageFilter.BLUR,
'CONTOUR' : ImageFilter.CONTOUR,
'DETAIL' : ImageFilter.DETAIL,
'EDGE_ENHANCE' : ImageFilter.EDGE_ENHANCE,
'EDGE_ENHANCE_MORE' : ImageFilter.EDGE_ENHANCE_MORE,
'EMBOSS' : ImageFilter.EMBOSS,
'FIND_EDGES' : ImageFilter.FIND_EDGES,
'SMOOTH' : ImageFilter.SMOOTH,
'SMOOTH_MORE' : ImageFilter.SMOOTH_MORE,
'SHARPEN' : ImageFilter.SHARPEN
}
def get_font_full_path(font_path,font_name):
ext = '.TTF' if font_name.upper() == font_name else ".ttf"
return font_path + font_name + ext
def create_image(font_name, font_size, font_color, width, height, back_ground_color, text, img_type="JPEG", image_filter=None):
font_full_path = get_font_full_path(font_path,font_name)
font = ImageFont.truetype ( font_full_path, font_size )
im = Image.new ( "RGB", (width,height), back_ground_color )
draw = ImageDraw.Draw ( im )
text_x, text_y = font.getsize(text)
x = (width - text_x)/2
y = (height - text_y)/2
draw.text ( (x,y), text, font=font, fill=font_color )
if image_filter:
real_filter = filter_dict[image_filter]
im = im.filter(real_filter)
im.save ( "sample.jpg", format=img_type )
`