2012-01-16 58 views
1

我看了看周围的方式来加载一个PNG到开罗使用单声道(C#)库的结合,但是我得到的最接近的是,在图书馆像cairo_image_surface_create_from_png() C-结合使用。但是,在库的C#绑定中,我没有在Cairo.ImageSurface.*下看到任何有用的静态成员。某处旧文章提到绑定不完整,情况如何?目前我使用Gdk.Image.Pixbuf加载内存(嵌入式)的图像,但看到GTK +已经转移到开罗和Windows.Forms的单声道使用开罗,我认为开罗的C#结合位至少会足以完成包括图片加载。我可能错过了什么?加载图像到开罗单

回答

2

我做了这个相当最近。您需要将您的图像加载到开罗面: -

var icon = new ImageSurface(pngfile); 

然后你可以使用ImageSurface.Show方法来呈现它:

icon.Show(ctx, x, y); 

Mono.Cairo Cookbook page查看更多有用的东西。

+0

感谢。我查看了ImageSurface类的构造函数,他们似乎提供了从byte []创建曲面,因为我的png作为资源嵌入(并且像流对象一样读取)。接下来我会尝试一下,但构造函数似乎需要宽度/高度,这应该在PNG的元数据中,我怀疑它可能不像你基于文件系统的解析PNG那样工作。除此之外,通过文件系统循环,是否有另一种获得嵌入png进入cairo表面的方​​法,而无需先通过gdk或类似方法解析它?例如直接通过开罗,或尽可能干净? – Bill 2012-01-16 10:35:15

+0

@Bill,并不如我所知。你或许可以从资源流中找到png的维度。 – IanNorton 2012-01-16 11:11:03