- - PR -
GDI+で描いた図形をImageオブジェクトに変換したいのですが
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-06-15 20:50
こんばんわ
GDI+のAddLineメソッドなどで描いた図形をImageオブジェクトに変換(?)したいのですが・・・。(VB.NET) 何故かというと、描画した図形をコントロールのBackgroundImageにしたいからです。 できれば、ピクチャーボックスに描いた図形をビットマップとして保存する方法もできれば知りたいです。 よろしくお願いします。 |
|
投稿日時: 2004-06-15 21:57
Dim newGraphics As Graphics = Graphics.FromImage(image)
でどうでしょうか? もう一度書かなくてはいけませんね。 [ メッセージ編集済み 編集者: えムナウ 編集日時 2004-06-15 21:58 ] |
|
投稿日時: 2004-06-15 22:02
>ピクチャーボックスに描いた図形をビットマップとして保存する方法
pictureBox.Image.Save(ファイル名) でどうでしょうか? [ メッセージ編集済み 編集者: えムナウ 編集日時 2004-06-15 22:04 ] |
|
投稿日時: 2004-06-15 23:01
お返事おりがとうございます。
でもGraphicPathのAddLineやGraphicsのDrowLineなどで描いた図形はImageではないので、Image.Saveでは保存できないんですよ。 残念ながら。 |
|
投稿日時: 2004-06-16 00:30
>でもGraphicPathのAddLineやGraphicsのDrowLineなどで描いた図形はImageではないので、
>Image.Saveでは保存できないんですよ。 まずピクチャーボックスに描いた図形があるんですよね。これがまだないのですか? ピクチャーボックスには Image プロパテイがあって、ピクチャーボックスにPaintメソッドなどで書いたGraphicPathのAddLineやGraphicsのDrowLine は Imageとして Image プロパテイで取得できると思いますが、それが出来ないのですか? Image プロパテイで取得できるなら pictureBox.Image.Save(ファイル名) で保存できるはずです。 Bitmap(Image)に絵を描きたいなら Dim image As New Bitmap(xサイズ,yサイズ) Dim graphics As Graphics = Graphics.FromImage(image) で graphics に対して絵を描けばいいと思います。 |
|
投稿日時: 2004-06-16 08:22
えムナウさんの方法が定石と思っています。
Dim image As New Bitmap(xサイズ,yサイズ) Dim graphics As Graphics = Graphics.FromImage(image) これで、(言い方が変かもしれませんが)graphicオブジェクトに描画したものが、imageオブジェクトに変換されるので、 pictureBox.Image.Save で保存できる。 |
|
投稿日時: 2004-06-16 10:02
Dim iimage As New Bitmap(Me.Width, Me.Height)
Dim e As Graphics = Graphics.FromImage(iimage) でeにLineなどを描いたらできました。 お二人ともありがとうございます。 先輩にはデバイスコンテキストを取るんだよと言われて、 昨晩デバイスコンテキストについて一生懸命調べていて、 GDI+ではデバイスコンテキストがないということを知って、 途方にくれていました。 助かりました。ありがとうございました。 |
|
投稿日時: 2004-10-15 19:04
ピクチャーボックス(pbscreen)にdrawlineで下のようなプログラムで描画しましたが、ビットマップになっていないのか pbscreen.Image.Save("c:\aaa.bmp")でエラーが出ます。この場合、ピクチャボックスにビットマップイメージを持ってくるとそれだけは保存してくれます。
ひろこさんがかかれていたような状態なのでしょうか。 どうすればこのラインを保存できるのでしょうか。 Dim g As System.Drawing.Graphics Private pen As New System.Drawing.Pen(Color.Red) Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click g.DrawLine(pen, 0, 0, 200, 200) pbscreen.Image.Save("c:\aaa.bmp") End Sub Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load g = pbscreen.CreateGraphics() End Sub |