Image Varification (Random Image Generation for Varification)

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Drawing.Imaging;
using System.Drawing.Text;
using System.Drawing;
using System.Security.Cryptography;

///
/// Summary description for VarificationImage
///

public class VarificationImage
{
public VarificationImage()
{
//
// TODO: Add constructor logic here
//
}
public string CreateImage(string path, int height, int width)
{
Random r = new Random();
string salt = CreateSalt(4);
Bitmap bmp = new Bitmap(width, height, PixelFormat.Format24bppRgb);
Graphics g = Graphics.FromImage(bmp);
g.TextRenderingHint = TextRenderingHint.AntiAlias;
g.Clear(Color.Black);
g.DrawRectangle(Pens.White, 1, 1, width - 3, height - 3);
g.DrawRectangle(Pens.Brown, 0, 0, width, height);
System.Drawing.Drawing2D.Matrix mymat = new System.Drawing.Drawing2D.Matrix();

for (int i = 0; i < salt.Length - 1; i++)
{
mymat.Reset();
mymat.RotateAt(r.Next(-30, 0), new PointF((float)(width * (0.12 * i)), (float)(height * 0.5)));
g.Transform = mymat;
g.DrawString(salt[i].ToString(), new Font("Comic Sans MS", 18, FontStyle.Italic), SystemBrushes.ActiveCaptionText, (float)(width * (0.12 * i)), (float)(height * 0.5));
g.ResetTransform(); //Monotype Corsiva
}

bmp.Save(path, ImageFormat.Gif);
g.Dispose();
bmp.Dispose();
return salt.Replace("=","");
}
public string CreateSalt(int size)
{
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();
byte[] buff = new byte[size + 1];
rng.GetBytes(buff);
return Convert.ToBase64String(buff);
}

}

No comments:

Post a Comment