import cairo
import math
w = 2000
h = 2000
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, w, h)
ctx = cairo.Context(surface)
ctx.scale(w, h)
surface_path = cairo.ImageSurface(cairo.FORMAT_ARGB32, w, h)
ctx_path = cairo.Context(surface_path)
ctx_path.scale(w, h)
surface_circle = cairo.ImageSurface(cairo.FORMAT_ARGB32, w, h)
ctx_circle = cairo.Context(surface_circle)
ctx_circle.scale(w, h)
""" Lots of function calls that draw paths to surface_path and circles to surface_circle """
ctx.set_source_surface(surface_path, 0, 0)
ctx.paint()
ctx.set_source_surface(surface_circle, 0, 0)
ctx.paint()
surface_path.write_to_png("example.png")
surface_circle.write_to_png("example2.png")
surface.write_to_png("result.png")
我正在尝试将两个表面(一个带有线条,一个带有圆形)编译到一个单独的表面上,然后将其保存到文件中。
尽管按照文档建议的方式进行操作,但最终图像仍为空白。我还尝试在surface_path
和surface_circle
上调用flush()
,但似乎没有任何作用。
我该如何将surface_circle
(example2.png)中的图像信息叠加在surface_path
(example.png)之上,然后将其输出到文件中?