Click here to Skip to main content
Licence 
First Posted 11 Jan 2005
Views 53,294
Bookmarked 32 times

Image Verification Helper Class

By | 19 Jan 2005 | Article
To generate random alphanumeric numbers in image format for image verification.

Sample image

Introduction

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 :

  • How to generate alpha-numeric characters randomly?
  • How to make it as an image?

Generating Random Alpha-Numerics

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
}

Generating Image in the Sky

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.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

vadivelkumar

Web Developer

India India

Member

Vadivel Kumar is from India and he works in C#/ASP.NET platforms.
 


Sign Up to vote   Poor Excellent
Add a reason or comment to your vote: x
Votes of 3 or less require a comment

Comments and Discussions

 
You must Sign In to use this message board. (secure sign-in)
 
Search this forum  
 FAQ
    Noise  Layout  Per page   
  Refresh
GeneralImage Verification PinmemberJani0320:30 3 Jan '09  
Generaldear vadivelkumar Pinmemberphuonglk1:52 4 Dec '08  
QuestionCreating An Image While Making An Email Signup Form. Pinmembermshariq21:26 29 Jun '06  
GeneralRe: Creating An Image While Making An Email Signup Form. Pinmembersiravicb11:40 5 Mar '08  
Hi, you need to create a page which will just load the image verification control and then create and img or asp:Image object with the source set to the aspx page that the image control is on.
 
<asp:Image runat="server" ImageUrl="imgverctl.aspx" />
GeneralRe: Creating An Image While Making An Email Signup Form. PinmemberMahmoud Aydeh6:05 18 Feb '09  
QuestionCan anybody provide me the function 'generateImage' in VB??? Pinmembermohsindeveloper18:27 5 Dec '05  
AnswerRe: Can anybody provide me the function 'generateImage' in VB??? Pinmemberzubairy11:54 29 Sep '11  

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Mobile
Web04 | 2.5.120529.1 | Last Updated 19 Jan 2005
Article Copyright 2005 by vadivelkumar
Everything else Copyright © CodeProject, 1999-2012
Terms of Use
Layout: fixed | fluid