C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 35 を表示中)
■17733 / )  円描画時のぼやけ防止方法について
□投稿者/ moro (9回)-(2008/04/30(Wed) 23:20:53)

分類:[VB.NET/VB2005] 

2008/05/01(Thu) 08:39:27 編集(投稿者)

いつもお世話になっております。
moroと申します。

VB.NET2003でビットマップに円を描画したのですが線が一部ぼやけて困っています。
プログラムは以下のように作成しました。

Dim TestPen As New System.Drawing.Pen(System.Drawing.Color.Red, Single.Parse(1))
Dim TestBmp As New System.Drawing.Bitmap(ファイル名)
Dim TmpBmp As New System.Drawing.Bitmap(TestBmpの幅, TestBmpの高さ)
Dim TmpGra As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(TmpBmp)
Dim rect As System.Drawing.Rectangle = New System.Drawing.Rectangle(0, 0, TmpBmp.Width, TmpBmp.Height)
TmpGra.DrawImage(TestBmp , rect, 0, 0, TestBmp.Width, TestBmp.Height, GraphicsUnit.Pixel)
TmpBmp.Save("保存ファイル名", System.Drawing.Imaging.ImageFormat.Jpeg)
Dim SaveBmp As New System.Drawing.Bitmap("保存ファイル名")
Dim SaveGra As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(SaveBmp)
SaveGra.DrawEllipse(OutPen, SaveBmpの中心X, SaveBmpの中心Y, 100, 100)
SaveBmp.Save(("保存ファイル名2", System.Drawing.Imaging.ImageFormat.Jpeg)

TestBmp:jpegファイル(Format8bppIndexed)
TmpBmp :jpegファイル(Format24bppRgb)
SaveBmp:jpegファイル(Format24bppRgb)

TmpBmpを中間に入れている理由はFormat8bppIndexed形式のファイルでは
System.Drawing.Graphicsを作成し、加工することが出来なかったためです。
一旦Format24bppRgb形式に変換しています。
Penオブジェクトの色を黒にした場合は、ぼやけることなく描画されます。

上記問題についての回答をご存知の方がいらっしゃいましたら
解決策をご教授願います。




返信 編集キー/


管理者用

- Child Tree -