Today i will show tutorial to create Captcha image in asp.net application :
Checklist :
- Create one dummy aspx page name "CaptchaImage.aspx".
- Create Captcha class name "CaptchaClass.cs".
- Create Page dummy to create captcha image name "Captcha.aspx".
The CaptchaImage.aspx page
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CaptchaImage.aspx.cs" Inherits="Captcha.CaptchaImage" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> </div> </form> </body> </html>
The CaptchaImage.aspx Code Behind
using System;
using System.Collections.Generic;
using System.Web.UI;
using System.Drawing;
namespace Captcha
{
public partial class CaptchaImage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
CaptchaClass C = new CaptchaClass();
Bitmap bitmap = C.CreateImage();
}
}
}
The CaptchaClass.cs
using System;
using System.Collections.Generic;
using System.Web;
using System.Drawing;
using System.Drawing.Imaging;
using System.Text;
namespace Captcha
{
public class CaptchaClass
{
public Random rand = new Random();
public Bitmap CreateImage()
{
string randomCode = GetRandomText();
Bitmap bitmap = new Bitmap(200, 150, System.Drawing.Imaging.PixelFormat.Format32bppArgb);
Graphics g = Graphics.FromImage(bitmap);
Pen pen = new Pen(Color.Gold);
Rectangle rect = new Rectangle(0, 0, 200, 150);
SolidBrush b = new SolidBrush(Color.DarkKhaki);
SolidBrush blue = new SolidBrush(Color.Gray);
int counter = 0;
g.DrawRectangle(pen, rect);
g.FillRectangle(b, rect);
for (int i = 0; i < randomCode.Length; i++)
{
g.DrawString(randomCode[i].ToString(), new Font("Verdana", 10 + rand.Next(14, 18)), blue, new PointF(10 + counter, 10));
counter += 20;
}
DrawRandomLines(g);
bitmap.Save(HttpContext.Current.Response.OutputStream, ImageFormat.Gif);
g.Dispose();
bitmap.Dispose();
return bitmap;
}
public void DrawRandomLines(Graphics g)
{
SolidBrush greenLine = new SolidBrush(Color.Green);
for (int i = 0; i < 20; i++)
{
g.DrawLines(new Pen(greenLine, 2), GetRandomPoints());
}
}
public Point[] GetRandomPoints()
{
Point[] points = { new Point(rand.Next(10, 150), rand.Next(10, 150)), new Point(rand.Next(10, 100), rand.Next(10, 100)) };
return points;
}
public string GetRandomText()
{
StringBuilder randomText = new StringBuilder();
string alphabets = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
Random r = new Random();
for (int j = 0; j <= 5; j++)
{
randomText.Append(alphabets[r.Next(alphabets.Length)]);
}
HttpContext.Current.Session["Code"] = randomText.ToString();
return HttpContext.Current.Session["Code"] as String;
}
}
}
The Captcha.aspx Page
<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true"
CodeBehind="Captcha.aspx.cs" Inherits="Captcha.Captcha" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<asp:Button ID="Button1" runat="server" Text="Draw Captcha"
onclick="Button1_Click" /><br />
<asp:Image ID="Image1" runat="server" />
</asp:Content>
The Captcha.aspx Code Behind
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Captcha
{
public partial class Captcha : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
Image1.ImageUrl = "CaptchaImage.aspx";
//to check captcha code, you can try check in session
// HttpContext.Current.Session["Code"]<-- store value in captcha image
}
}
}
The Output
Have a try =)
References
By Mohd Zulkamal
NOTE : – If You have Found this post Helpful, I will appreciate if you can Share it on Facebook, Twitter and Other Social Media Sites. Thanks =)


0 comments:
Post a Comment