Graphicsを使って作図してみる。

 C#で図を作成したい場合はSystem.Drawing.Graphicsを使用します。
 Graphicsを使用するには「参照」にSystem.Drawingを追加する必要があります。
 以下のサンプルコードはGraphicsを使用して図を作成し、PNG画像として保存するコードです。
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;

namespace Graphics1
{
    class Program
    {
        static void Main(string[] args)
        {
            var path = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "Image.png");

            using (var bitmap = new Bitmap(100, 100))                // Imageオブジェクトを用意
            using (var graphics = Graphics.FromImage(bitmap))    // ImageからGraphicsオブジェクトを作成
            using (var pen = new Pen(Color.Black, 2))
            using (var bgBrush = Brushes.White)
            using (var brush = Brushes.Red)
            using (var font = new Font("メイリオ", 24))
            {           
                // 背景色
                graphics.FillRectangle(bgBrush, graphics.VisibleClipBounds);

                // Graphicsに図形を描画する
                graphics.DrawRectangle(pen, 10, 10, 80, 80);

                // テキストも描画できる
                graphics.DrawString("Test", font, brush, 10, 10);

                // 画像ファイルとして保存する
                bitmap.Save(path, ImageFormat.Png);
            }
        }
    }
}
 このサンプルコードを実行すると以下の画像が作られます。
Graphics1_Image.png
 先ず最初にImageオブジェクトを作成します。
 このコードでは空のBitmapオブジェクトを作成しています。
 Graphics.FromImageメソッドでImageオブジェクトからGraphicsオブジェクトを作成します。
 このGraphicsオブジェクトに対して描画操作を行うことで作図することができます。
 このサンプルコードでは、背景色をぬり、四角と文字を描画しています。
 見ての通り、描画する際に使用するPenやBrush、Font等Disposableなクラスが多いのでリソースの開放漏れに注意してください。
 最後に、bitmapのSaveメソッドを使用すれば画像ファイルとして保存できます。

 次回から何回かに分けて図形や文字を描画する際の説明を行います。
---------------------------------------------------------------
2016/8/6修正
 BitmapインスタンスがDisposeされていなかった点を修正。  
スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

カレンダー
05 | 2016/06 | 07
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -
全記事表示リンク

全ての記事を表示する

カテゴリ
タグリスト

月別アーカイブ
08  07  06  05  04  03  02  01  12  11  10  09  08  07  06  04  03  02  01  12  11  10  09  08  07  06  05  04  03  02  01  12  11  10  09 
最新記事
リンク
最新コメント
検索フォーム
Amazon