背景:
//生成驗證碼
public void CreateImage()
{
//擷取4位驗證碼,并轉成小寫。
string code = getRandomNumber(4).ToLower();
//驗證碼指派Cookie
HttpCookie myCookie = new HttpCookie(Constant.LOGIN_VALIDATE_CODE);
myCookie.Value = MD5Utils.getMD5(code);
myCookie.Expires = DateTime.Now.AddMinutes(15);
Response.Cookies.Add(myCookie);//字型名
string strFontName = "宋體";
//字型大小
int intFontSize = 12;
//圖像寬
int intWidth = 45;
//圖像長
int intHeight = 20;
//背景顔色
Color bgColor = ColorTranslator.FromHtml("#EFB3FF");
//前景顔色
Color foreColor = ColorTranslator.FromHtml("#FF0000");
//産生字型
Font forFont = new Font(strFontName, intFontSize, FontStyle.Bold);
//生成圖檔
Bitmap newBitmap = new Bitmap(intWidth, intHeight, PixelFormat.Format32bppArgb);
Graphics g = Graphics.FromImage(newBitmap);
//定義一個四方形框與字片一樣大小
Rectangle newRect = new Rectangle(0, 0, intWidth, intHeight);
//塗上背景色
g.FillRectangle(new SolidBrush(bgColor), newRect);
//寫字
g.DrawString(code, forFont, new SolidBrush(foreColor), 2, 2);
MemoryStream mStream = new MemoryStream();
//存入MemoryStream
newBitmap.Save(mStream, ImageFormat.Gif);
g.Dispose();
newBitmap.Dispose();
//發送
Response.ClearContent();
Response.ContentType = "image/GIF";
Response.BinaryWrite(mStream.ToArray());
HttpContext.ApplicationInstance.CompleteRequest();
}
//生成4位驗證碼
public static string getRandomNumber(int Length)
{
System.Text.StringBuilder newRandom = new System.Text.StringBuilder(10);
Random rd = new Random();
for (int i = 0; i < Length; i++)
{
//得到數字(根據情況二選一)
newRandom.Append(constant[rd.Next(10)]);
//得到字元和數字
newRandom.Append(constant[rd.Next(62)]);
}
return newRandom.ToString();
}
//驗證碼庫
private static char[] constant =
{
'0','1','2','3','4','5','6','7','8','9',
'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',
'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
};
前台(點選圖檔觸發更改驗證碼的方法):
<img border="0" class="text4" align="absmiddle" style="cursor: pointer;" onclick="changeImages();" src="" name="createImage" title="點選換一張圖檔" id="Img3" />
JavaScript:
function changeImages() {
var d = new Date();
var obj = document.getElementById('Img');
obj.src = "/Common/CreateImage?tmep_seq=" + d.getTime();
}
changeImages();