LoginSignup
8
7

More than 5 years have passed since last update.

【C#】画像生成の基本(Bitmap)

Last updated at Posted at 2019-03-10

はじめに

【Java】簡単な模様を描くのコードを転用して、「簡単な模様の画像」をC#で生成してみました。

コード

  • 以下の2つのライブラリを使うと、ラスター形式の画像(BMP,JPG,PNGなど)を操作することができます。
    • System.Drawing;
    • using System.Drawing.Imaging;
  • 所望の座標のピクセルに対する色付けは、SetPixelメソッドを使います。
    • {Bitmapオブジェクト}.SetPixcel(x座標,y座標,色)
  • 生成した画像の保存は、Saveメソッドを使います。
    • {Bitmapオブジェクト}.Save({保存先のパス}, {画像の形式})
  • 余談ですが、System.Drawingは「GDI+」というグラフィックサブシステムを利用しているそうです。
    • System.DrawingのAPIを見ると、「GDI+の基本的なグラフィックス機能を使用できるようにします」と書かれています。
ImageCreator.cs
public class ImageCreator
{
    /// <summary>
    /// バツ印の画像を生成する。
    /// </summary>
    /// <param name="size">画像の縦・横のサイズ。px数を指定する。</param>
    public static void CreateCrossMark(int size)
    {
        Bitmap bmp = new Bitmap(size, size);

        // 全ピクセルに色付け
        for (int row = 0; row < size; row++)
        {
            for (int col = 0; col < size; col++)
            {
                if (row == col || row + col == size - 1)
                {
                    bmp.SetPixel(col, row, Color.White);
                }
                else
                {
                    bmp.SetPixel(col, row, Color.Black);
                }
            }
        }

        bmp.Save(@"C:\image\cross_mark.png", ImageFormat.Png);
    }
}

生成された画像

  • 以下のように「黒地に白のバツ印」の画像を生成できました。
    • CreateCrossMarkメソッドの引数の値を変えることで、大小様々なサイズの画像を生成できました。

cross_mark.png

まとめ

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7