ソース
ファイル名:icatchgen.cs
using System;
using System.Drawing;
/**
<summary>画像にテキストを描画するプログラム</summary>
*/
class Program
{
/**
<summary>画像にテキストを描画</summary>
<param name="fileName">出力する画像ファイルのパス</param>
<param name="drawText">描画するテキスト</param>
*/
static void drawTextToImageFile(string fileName, string drawText)
{
const int fontSize = 90;
const string fontFamily = "MS UI Gothic";
const int width = 800; // 画像の幅
const int height = 600; // 画像の高さ
const int margin = 64; // マージン
using(Bitmap bmp = new Bitmap(width, height))
{
using(Graphics g = Graphics.FromImage(bmp))
using(Font fnt = new Font(fontFamily, fontSize))
using(Pen bluePen = new Pen(Color.DeepSkyBlue, margin))
using(Pen grayPen = new Pen(Color.Gainsboro, margin))
{
// 背景
Rectangle bgRect = new Rectangle(0, 0, width, height);
g.FillRectangle(Brushes.White, bgRect);
// 枠
grayPen.LineJoin = System.Drawing.Drawing2D.LineJoin.Round;
Rectangle bdsRect = new Rectangle(margin+6, margin+6, width-margin*2, height-margin*2);
g.DrawRectangle(grayPen, bdsRect);
bluePen.LineJoin = System.Drawing.Drawing2D.LineJoin.Round;
Rectangle bdRect = new Rectangle(margin, margin, width-margin*2, height-margin*2);
g.DrawRectangle(bluePen, bdRect);
g.FillRectangle(Brushes.DeepSkyBlue, bdRect);
// テキスト
g.DrawString(drawText, fnt, Brushes.White, bdRect);
}
bmp.Save(fileName, System.Drawing.Imaging.ImageFormat.Png);
}
}
/**
<summary>利用法</summary>
*/
static void Usage()
{
Console.WriteLine("icathcgen.exe ファイル名 文字列");
}
/**
<summary>エントリーポイント</summary>
*/
static void Main(string[] args)
{
if (args.Length < 2)
{
Usage();
Environment.Exit(0);
}
string fileName = args[0];
string drawText = args[1];
Console.WriteLine("{0} {1}", fileName, drawText);
drawTextToImageFile(fileName, drawText);
} // Main end
} // class end
コンパイル
PS>csc icatchgen.cs
実行
PS>.\icatchgen.exe output.png "描画する文字列"
コメント