C# 将曲面转换回Pixbuf

C# 将曲面转换回Pixbuf,c#,mono,cairo,gdk,C#,Mono,Cairo,Gdk,我在Pixbuf上绘制了以下代码: private Pixbuf drawOnPixbuf(Pixbuf original) { Surface surface = new ImageSurface(Format.Argb32, original.Width, original.Height); Context ctx = new Context(surface); CairoHelper.SetSourcePixbuf(ctx, original, 0, 0);

我在
Pixbuf
上绘制了以下代码:

private Pixbuf drawOnPixbuf(Pixbuf original)
{
    Surface surface = new ImageSurface(Format.Argb32, original.Width, original.Height);
    Context ctx = new Context(surface);
    CairoHelper.SetSourcePixbuf(ctx, original, 0, 0);

    // Draw on the surface here. Not shown since not relevant. 

    // Here, I want to convert the surface back to pixbuf.
    Pixbuf finishedPixbuf = ...;

    ctx.GetTarget().Dispose();
    ctx.Dispose();

    return finishedPixbuf;
}

我找不到如何将
曲面
转换回
Pixbuf
您正在寻找的函数似乎是Gdk的一部分:

cairo_surface_t *
gdk_cairo_surface_create_from_pixbuf (const GdkPixbuf *pixbuf,
                                      int scale,
                                      GdkWindow *for_window);

具体来说,
gdk\u cairo\u surface\u create\u from\u pixbuf(pixbuf,1,NULL)
应该做您想要做的事情。(对不起,我不知道如何用C#来表达这一点。)