1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python画圆填色_如何用python在图像上绘制不同笔触和填充颜色的文本?

python画圆填色_如何用python在图像上绘制不同笔触和填充颜色的文本?

时间:2023-10-17 18:47:55

相关推荐

python画圆填色_如何用python在图像上绘制不同笔触和填充颜色的文本?

How can I draw text with different stroke and fill colors on images with python?

Here is some text with red stroke and gray fill.

I tried to do this with PIL but there was no option for setting the stroke color.

解决方案

Using cairo (with much code taken from here):

import cairo

def text_extent(font, font_size, text, *args, **kwargs):

surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 0, 0)

ctx = cairo.Context(surface)

ctx.select_font_face(font, *args, **kwargs)

ctx.set_font_size(font_size)

return ctx.text_extents(text)

text='Example'

font="Sans"

font_size=55.0

font_args=[cairo.FONT_SLANT_NORMAL]

(x_bearing, y_bearing, text_width, text_height,

x_advance, y_advance) = text_extent(font, font_size, text, *font_args)

surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, int(text_width), int(text_height))

ctx = cairo.Context(surface)

ctx.select_font_face(font, *font_args)

ctx.set_font_size(font_size)

ctx.move_to(-x_bearing, -y_bearing)

ctx.text_path(text)

ctx.set_source_rgb(0.47, 0.47, 0.47)

ctx.fill_preserve()

ctx.set_source_rgb(1, 0, 0)

ctx.set_line_width(1.5)

ctx.stroke()

surface.write_to_png("/tmp/out.png")

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。