DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Graphics.DrawImageで描画している画像を保存したい

環境/言語:[WindwosXP、VB.NET]
分類:[.NET]

お世話になっております。

とあるスキャナツールを作成しています。
一部省略していますが下記のようなコードになります。
---
Dim myImage As Image
myImage = Image.FromFile(scanPic)
Dim imageAttr As New Imaging.ImageAttributes
Dim value_Gamma As Single = 1.0
imageAttr.SetGamma(value_Gamma)
Dim rect As New Rectangle(0, 0, 100, 100)
e.Graphics.DrawImage(myImage, rect, 0, 0, 100, 100, GraphicsUnit.Pixel, imageAttr)
---
※Scanpicはスキャナから取り込んだJPGファイルへのパス
※eはPaintイベントハンドラです

これでスキャナで取り込んだ元画像(A)からガンマ値を適当に変更した画像(B)を表示することが出来ました。
Aは普通にそのままファイルとして保存できていますが、このBを保存する方法をお伺いしたいのです。
Imageオブジェクトを新しく作成し、これに描画して保存すればきっとできます。

DOBON.NET .NET Tips - 画像を動的に作成する
http://dobon.net/vb/dotnet/graphics/createimage.html
■No4594に返信(管理人さんの記事)
> Imageオブジェクトを新しく作成し、これに描画して保存すればきっとできます。

下記コードでとりあえず出来ましたので報告します。ありがとうございました。
BitmapとimageとGraphicsの違いが分かりませんが...

---
Dim myImage As Image
myImage = Image.FromFile(scanPic)
'大きさを指定してBitmapオブジェクトの作成
Dim img As New Bitmap(myImage.Width, myImage.Height)
'imgのGraphicsオブジェクトを取得
Dim d_img As Image = img
Dim d_grf As Graphics = Graphics.FromImage(d_img)
Dim imageAttr As New Imaging.ImageAttributes
Dim value_Gamma As Single = 1.0
imageAttr.SetGamma(value_Gamma)
Dim rect As New Rectangle(0, 0, 100, 100)
d_grf.Graphics.DrawImage(myImage, rect, 0, 0, 100, 100, GraphicsUnit.Pixel, imageAttr)
d_img.Save("test.jpg")
---
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板