0

DrawingAreaオブジェクトの画像をビットマップに保存する必要がありますが、その方法がわかりません。誰かが、DrawingArea画像をビットマップに保存する方法を教えてもらえますか?

4

1 に答える 1

1

これを行うにはいくつかの方法がありますが、それはあなたが何をしたいのか、そしてあなたが本当に必要かどうか/なぜ必要なのかによって異なりますSystem.Drawing.Bitmap

ウィジェットをコピーする

gtk_widget_get_snapshotをP/呼び出しして、を取得できますGdk.Pixbuf

Pixbufは、ファイルに保存することも、にコピーすることもできますSystem.Drawing.Bitmap

System.Drawingを使用する

描画コードをSystem.DrawingAPIに移植できます。

DrawingAreaのExposeメソッドで、Gtk.DotNet.Graphics.FromDrawableを使用してウィジェットのを取得System.Drawing.Graphicsし、移植された描画コードを使用してウィジェットに描画します。

次に、を作成しSystem.Drawing.Bitmap、同じ描画コードを使用して描画できます。

カイロを使う

描画コードをMono.Cairo(System.Drawingよりもはるかに強力な新しいGTK#描画API)に移植できます。

DrawingAreaのExposeメソッドで、を使用Gdk.CairoHelper.CreateしてウィジェットのCairoコンテキストを取得し、移植された描画コードを使用してそれに描画します。

次に、Cairo描画ロジックを使用して、Cairoに書き込むことがImageSurfaceできます。これは、ファイルに保存したり、にコピーしたりできますSystem.Drawing.Bitmap

于 2012-12-12T23:14:55.097 に答える