1
如何将Gdk.Pixbuf
(_pixbuf在下面)转换为Windows窗体(System.Drawing
)位图?以下是使用Gtk.DotNet.Graphics
的代码,但它仅显示白色图像。有更好,更直接的方法吗?我在Mono上使用C#,但如果你有其他语言的答案,我可以转换。将Gdk.Pixbuf转换为System.Drawing.Bitmap?
public System.Drawing.Bitmap toBitmap() {
Gdk.Pixmap pixmap, mask;
_pixbuf.RenderPixmapAndMask(out pixmap, out mask, 255);
System.Drawing.Graphics graphics = Gtk.DotNet.Graphics.FromDrawable(pixmap);
return new System.Drawing.Bitmap(width, height, graphics);
}
很不错的!便利和简单的一个包装! – 2013-04-08 11:36:20
它似乎没有工作(指定png,jpeg或bmp)pixbuf与透明度...可能是Gdk.Pixbuf.SaveToBuffer()中的一个错误,或在位图的缓冲区读取(我正在使用单声道)。将尝试首先删除透明度... – 2013-04-08 12:12:34
今天早上尝试了它。适用于纯PNG和ICO,而不适用于BMP和JPEG。虽然JPEG根本不支持透明度,但BMP支持alpha通道。不知道为什么BMP不能在这里工作。 – 2013-04-09 02:38:13