本文介绍了如何用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.
我尝试用PIL执行此操作,但没有设置笔触颜色的选项。
I tried to do this with PIL but there was no option for setting the stroke color.
推荐答案使用 cairo (代码来自此处):
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")
更多推荐
如何用python在图像上绘制不同笔触和填充颜色的文本?
发布评论