我需要将我的DrawingArea对象的图像保存到位图,但是我不知道怎么做。谁能告诉我,如何将DrawingArea图像保存到位图?
发布于 2012-12-13 07:14:55
有几种方法可以做到这一点,这取决于你想要做什么,以及你是否/为什么真的需要一个System.Drawing.Bitmap。
复制小工具
您可以P/调用gtk_widget_get_snapshot来获取Gdk.Pixbuf。
可以将Pixbuf保存到a文件中,也可以复制到System.Drawing.Bitmap中。
使用System.Drawing的
您可以将绘图代码移植到System.Drawing应用编程接口。
在DrawingArea的Expose方法中,使用Gtk.DotNet.Graphics.FromDrawable获取小部件的System.Drawing.Graphics,并使用移植的绘图代码在其上绘制。
然后,您可以创建一个System.Drawing.Bitmap并使用相同的绘图代码来绘制它。
使用开罗的
您可以将绘图代码移植到Mono.Cairo (新的GTK#绘图API,它比System.Drawing强大得多)。
在DrawingArea的Expose方法中,使用Gdk.CairoHelper.Create获取小部件的Cairo上下文,并使用移植的绘图代码在该上下文上绘制。
然后,您可以使用Cairo绘图逻辑来写入Cairo ImageSurface,它可以保存到a文件中,也可以复制到System.Drawing.Bitmap中。
https://stackoverflow.com/questions/13815857
复制相似问题