![]() |
Web Development »
Charts, Graphs and Images »
Images and multimedia
Intermediate
Image Verification Helper ClassBy vadivelkumarTo generate random alphanumeric numbers in image format for image verification. |
C#.NET 1.0, .NET 1.1, .NET 2.0, Win2K, WinXP, Win2003, ASP.NET, Dev
|
|
Advanced Search |
|
|
|
||||||||||||||||
This article will help the intermediate ASP.NET developers who may be sometimes in need of implementing a feature like Image Verification when getting inputs from the users. Basically, this is a new technique which will stop the automated programs to process the input forms. But, here I'm not explaining you about the whole technique of Image Verification. This article will explain two things, which we really need :
Microsoft .NET framework provides System.Security.Cryptography namespace which contains RandomNumberGenerator to produce random numbers.
The class CImgVerify contains the code to produce the random alphabets/numbers in the function getRandomAlphaNumeric.
RandomNumberGenerator rm;
rm = RandomNumberGenerator.Create();
The above code will create a RandomNumberGenerator object.
byte[] data = new byte[3];
rm.GetNonZeroBytes(data);
The byte type "data" will hold three elements of array to have the randomly generated numbers by GetNonZeroBytes. The GetNonZeroBytes fills an array of bytes with a cryptographically strong random sequence of nonzero values.
The generated random numbers will be stored in a byte variable as an array. Each and every elements will be an integer variable. So, make a proper alphanumeric string. The following code will use a loop to identify whether the randomly generated number falls into alphabets.
for(int nCnt=0;nCnt<=data.Length-1;nCnt++)
{
//First convert it into a integer
int nVal = Convert.ToInt32(data.GetValue(nCnt));
// Check whether the converted int falls in between alphabets,symbols
if(nVal > 32 && nVal < 127)
{
sTmp = Convert.ToChar(nVal).ToString(); //Convert to character
}
else
{
sTmp = nVal.ToString(); //Remain as integer
}
sRand += sTmp.ToString(); //Append it to a string
}
So, now we got the random alphanumeric to display as a image. The image can be created by the System.Drawing namespace. The following is the code which itself self explanatory.
public Bitmap generateImage(string sTextToImg)
{ //
//Here, i haven't used any try..catch
PixelFormat pxImagePattern = PixelFormat.Format32bppArgb;
Bitmap bmpImage = new Bitmap(1,1,pxImagePattern);
Font fntImageFont = new Font("Trebuchets",14);
Graphics gdImageGrp = Graphics.FromImage(bmpImage);
float iWidth = gdImageGrp.MeasureString(sTextToImg,fntImageFont).Width;
float iHeight = gdImageGrp.MeasureString(sTextToImg,fntImageFont).Height;
bmpImage = new Bitmap((int)iWidth,(int)iHeight,pxImagePattern );
gdImageGrp = Graphics.FromImage(bmpImage);
gdImageGrp.Clear(Color.White);
gdImageGrp.TextRenderingHint = TextRenderingHint.AntiAlias;
gdImageGrp.DrawString(sTextToImg,fntImageFont, new SolidBrush(Color.Red),0,0);
gdImageGrp.Flush();
return bmpImage;
}
If you have further queries/suggestions, post here.
| You must Sign In to use this message board. | |||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 19 Jan 2005 Editor: Sumalatha K.R. |
Copyright 2005 by vadivelkumar Everything else Copyright © CodeProject, 1999-2009 Web12 | Advertise on the Code Project |