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
。