DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

グラデーションのかかった線を引く

注意:画像の表示方法が分からないという方は、まず「コントロールやフォームに画像を表示する」をご覧ください。

Penクラスのインスタンスを作成するときに、そのコンストラクタにBrushオブジェクトを指定することにより、そのブラシを基にしてペンを作成することができます。例えば「グラデーションをかける」で紹介したようなブラシでペンを作成すれば、グラデーションのかかった線を引くことができます。同じように「画像で塗りつぶす」、「いろいろな模様(ハッチスタイル)で塗りつぶす」などで紹介したブラシを使えば、画像やハッチスタイルで線を引くこともできます。

以下に、グラデーションのかかった直線を引く例を示します。

VB.NET
コードを隠すコードを選択
'Imports System.Drawing
'Imports System.Drawing.Drawing2D
'がソースファイルの一番上に書かれているものとする

'描画先とするImageオブジェクトを作成する
Dim canvas As New Bitmap(PictureBox1.Width, PictureBox1.Height)
'ImageオブジェクトのGraphicsオブジェクトを作成する
Dim g As Graphics = Graphics.FromImage(canvas)

'グラデーションのブラシを作成
Dim gb As New LinearGradientBrush(New Point(10, 0), New Point(200, 0), _
    Color.Red, Color.Yellow)
'ブラシを基にしてPenを作成
Dim p As New Pen(gb, 10)
'線を引く
g.DrawLine(p, 10, 10, 200, 10)

p.Dispose()
g.Dispose()

'PictureBox1に表示する
PictureBox1.Image = canvas
C#
コードを隠すコードを選択
//using System.Drawing;
//using System.Drawing.Drawing2D;
//がソースファイルの一番上に書かれているものとする

//描画先とするImageオブジェクトを作成する
Bitmap canvas = new Bitmap(PictureBox1.Width, PictureBox1.Height);
//ImageオブジェクトのGraphicsオブジェクトを作成する
Graphics g = Graphics.FromImage(canvas);

//グラデーションのブラシを作成
LinearGradientBrush gb =
    new LinearGradientBrush(new Point(10, 0), new Point(200, 0),
    Color.Red, Color.Yellow);
//ブラシを基にしてPenを作成
Pen p = new Pen(gb, 10);
//線を引く
g.DrawLine(p, 10, 10, 200, 10);

p.Dispose();
g.Dispose();

//PictureBox1に表示する
PictureBox1.Image = canvas;

この結果、下図のような線が引かれます。

グラデーションのかかった直線
  • 履歴:
  • 2012/8/3 表示する方法を、PictureBox.Imageプロパティを使った方法に変更。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • このサイトで紹介されているコードの多くは、例外処理が省略されています。例外処理については、こちらをご覧ください。
  • コードの先頭に記述されている「Imports ??? がソースファイルの一番上に書かれているものとする」(C#では、「using ???; がソースファイルの一番上に書かれているものとする」)の意味が分からないという方は、こちらをご覧ください。
  • .NET Tipsをご利用いただく際は、注意事項をお守りください。