public static bool GenRad(string strRadnum,System.IO.Stream oOutStream,int nWidth,int nHeight)
{
System.Drawing.Bitmap oImage;
try
{
oImage=new System.Drawing.Bitmap(nWidth,nHeight);
}
catch(System.Exception Dr_ERr)
{
CardSale.Tools.ErrorLog.WriteLog("Photo/GenRad(string strRadnum,System.IO.Stream oOutStream,int nWidth,int nHeight)",Dr_ERr.Message);
return false;
}
System.Drawing.Graphics oGr=System.Drawing .Graphics.FromImage(oImage);
System.Drawing.SolidBrush oBack=new System.Drawing.SolidBrush(System.Drawing.Color.FromArgb(255,255,255));
oGr.FillRectangle(oBack,0,0,nWidth,nHeight);
System.Drawing.Pen oPen=new System.Drawing.Pen(System.Drawing.Color.Black);
System.Drawing.Font oFont=new System.Drawing.Font(System.Drawing.FontFamily.GenericSansSerif,12);
System.Drawing.SolidBrush oLine=new System.Drawing.SolidBrush(System.Drawing.Color.FromArgb(0,0,0));
System.Drawing.Imaging.ImageAttributes imageAttr = new System.Drawing.Imaging.ImageAttributes();
imageAttr.SetGamma(0.1F);
oGr.DrawString(strRadnum,oFont,oLine,5,0);
try
{
oImage.Save(oOutStream,System.Drawing.Imaging.ImageFormat.Jpeg);
}
catch
{
oGr.Dispose();
oImage.Dispose();
return false;
}
oGr.Dispose();
oImage.Dispose();
return true;
}
关键是在网页中的设计,如果设计不正确的话,可能有些用户不能正确输入验证码,比有时用户端有3721 这样子的话可能用户的验证码不变。
引用方法:<IMG id='ValidImage' align='absBottom' border='0' alt=请按图片上的字母输入验证码src='checknum.jsp'><SCRIPT>document.form1.ValidImage.src='checknum.jsp?'+Math.random()</SCRIPT>,这样子才能保证验证码有效。