08 December 2016

Resim Captcha Oluşturma

GDI+ konusuna giriş yaparken GDI+ kullacağımız yerler  kısmında captcha çizdirmek için kullanabileceğimizi not almıştık. Bu yazımda GDI+ DrawString() ve DrawRectangle() metodlarını kullanarak resimli bir captcha oluşturmaktan bahsedeceğim.

Forma bir PictureBox (pbCaptcha) ve Button (btnReCaptcha) ekleyelim.

//global alanda tanımlayalım.
 Bitmap bmp;
 Graphics grp;
 string chars = "abcdefghıijklmnoöprsştuüvyz0123456789";
 Random rdm = new Random();

Daha sonra butonun click olayına kodlarımızı ekleyelim:

private void btnReCaptcha_Click(object sender, EventArgs e)
 {
 bmp = new Bitmap(pbCaptcha.Width, pbCaptcha.Height);
 grp = Graphics.FromImage(bmp);
string captcha = String.Empty;
 for (int i = 0; i < 5; i++)
 {
 int x = rdm.Next(0, chars.Length);
 char c = chars[x];
 captcha += c;
 }
HatchBrush brush = new HatchBrush(HatchStyle.Cross, Color.Green, Color.Black);
 Rectangle rec = new Rectangle(0, 0, bmp.Width, bmp.Height);
 grp.FillRectangle(brush, rec);
Font f = new Font("Tahoma", 13, FontStyle.Bold);
 grp.DrawString(captcha, f, Brushes.White, new PointF(5, 5));
pbCaptcha.Image = bmp;
 grp.Dispose();
 }

 

Comments

  1. HatchBrush brush = new HatchBrush(HatchStyle.Cross, Color.Green, Color.Black);
    burda bi hata olduğunu söylüyor ama.