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