利用 System.Drawing 在 Page_Load 動態繪製驗證碼圖片,回應 Content-Type: image/gif。
protected void Page_Load(object sender, EventArgs e) {
using (Bitmap image = new Bitmap(30, 20)) {
using (Graphics g = Graphics.FromImage(image)) {
g.FillRectangle(Brushes.Yellow, 0, 0, 30, 20);
g.DrawRectangle(Pens.Red, 0, 0, 29, 19);
Font f = new Font("Arial", 9, FontStyle.Italic);
string code = Request.QueryString["code"];
g.DrawString(code, f, Brushes.Blue, 0, 0);
Response.ContentType = "image/gif";
image.Save(Response.OutputStream, ImageFormat.Gif);
}
}
}
必須設定 Response.ContentType 否則非 IE 瀏覽器無法顯示。
protected void Page_Load(object sender, EventArgs e) {
StringBuilder sb = new StringBuilder("~/GraphicalText.aspx?code=");
Random r = new Random();
for (int i = 0; i < 4; i++) sb.Append((char)r.Next(48, 58)); // 4 位數字
Image1.ImageUrl = sb.ToString();
}
簡單易懂的 GDI+ 動態圖片驗證碼實作,適合教學與輕量級應用。