一、图片水印
图片水印这段代码个人不是特别满意但是可以凑合着用:
private void button1_Click(object sender, EventArgs e)
{
Bitmap bitmap = new Bitmap(@"D:\t.gif");
Graphics g = Graphics.FromImage(bitmap);
g.TranslateTransform(0, 60);
g.RotateTransform(-45);
SolidBrush brush = new SolidBrush(Color.FromArgb(128, Color.Red));
g.DrawString("test", new Font("隶书", 63), brush, 0, 80);
pictureBox1.Image = bitmap;
g.Dispose();
}
二、验证码的绘制
private void button1_Click(object sender, EventArgs e)
{
Graphics g = pictureBox1.CreateGraphics();
g.Clear(Color.White);
Random r = new Random();
string codes = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
char code;
string[] ftfmls ={ "楷体", "雅黑", "宋体","隶书","Yu Gothic","ZWAdobeF","方正舒体"};
Font font = SystemFonts.DefaultFont;
//六个验证码:
for (int i = 0; i < 6; i++)
{
code = codes[r.Next(0, 61)];//随机字母或者数字
font = new Font(ftfmls[r.Next(0, 7)], r.Next(28,36));//随机字体极其大小
Brush brush = new SolidBrush(Color.FromArgb(r.Next(0, 256), r.Next(0, 256), r.Next(0, 256)));//随机字体颜色
g.DrawString(code.ToString(), font ,brush , pictureBox1.Location.X + 28 * i, pictureBox1.Size.Height / 2 - 15);
}
//四条干扰线
for(int i = 0; i < 4; i++)
{
Pen pen = new Pen(Color.FromArgb(r.Next(0, 256), r.Next(0, 256), r.Next(0, 256)));//随机线条颜色
Point point1 = new Point(r.Next(0, pictureBox1.Size.Width), pictureBox1.Size.Height / 2 - 15);
Point point2 = new Point(r.Next(0, pictureBox1.Size.Width), pictureBox1.Size.Height / 2 + 15);
g.DrawLine(pen, point1, point2);
}
//100个干扰点
for(int i = 0; i < 100; i++)
{
//g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
Brush brush = new SolidBrush(Color.FromArgb(r.Next(0, 256), r.Next(0, 256), r.Next(0, 256)));
g.FillRectangle(brush, 5 + r.Next(2,400), 5 + r.Next(2, 200), 2, 2);
}
}