ASP.NETで画像を動的に作成する方法のメモ。

  • 画像は、サーバにファイルを作らずに行う。
  • 画面に図を埋め込めるように、部品として定義する。
  • 部品なので、GETに対応させる。必要なパラメータは、URLに含める。
  • 部品の作成

ジェネリックハンドラを作成以下のように記述

public bool IsReusable { get { return false; } }
public void ProcessRequest (HttpContext context)
{
    using (Bitmap bmp = new Bitmap(500, 500))
    using (Graphics g = Graphics.FromImage(bmp))
    {
        Font font = new Font("MS UI Gothic", 11);
        g.Clear(Color.White);
        int i = 0;
        foreach (string key in context.Request.QueryString)
            g.DrawString(string.Format("{0}, {1}", key, context.Request[key]),
                font, Brushes.Black, 10, i += 14);
        context.Response.ContentType = "image/gif";
        bmp.Save(context.Response.OutputStream, ImageFormat.Gif);
    }
}
  • 部品の利用 Imageコントロールを貼り付け、ImageUrl="Handler.ashx?abc=123&para1=xyz"とする。

ASP.NETでのクッキーの利用法。

利用
HttpCookie ck = Request.Cookies["MyData"];
if (ck != null) TextBox1.Text = ck.Value;
設定
HttpCookie ck = new HttpCookie("MyData", TextBox1.Text);
ck.Expires = DateTime.Now.AddYears(1);
Response.Cookies.Add(ck);