一、图片水印

1:引命名空间System.Drawing;

前端代码

<div>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button1" runat="server" Text="上传" /><br />
<asp:Image ID="Image1" runat="server" />
</div>

后台代码

//准备画布
System.Drawing.Image img = System.Drawing.Image.FromStream(FileUpload1.FileContent);
//创建画笔
Graphics g = Graphics.FromImage(img); string s = "汉企奇点网络0928";
//画笔的字体
Font f = new Font("微软雅黑",);
//画笔的样式和颜色
Brush b = new SolidBrush(Color.Red);
//在什么位置画
PointF p = new PointF(,);
//画字符串
g.DrawString(s, f, b, p); string sss = "images/"+DateTime.Now.ToString("yyyyMMddhhmmssms")+FileUpload1.FileName; img.Save(Server.MapPath(sss)); Image1.ImageUrl = sss;

二、图片验证码

1:引命名空间System.Drawing;

单独创建一个窗体来绘制验证码

后台代码

protected void Page_Load(object sender, EventArgs e)
{
Bitmap img = new Bitmap(, );
Graphics g = Graphics.FromImage(img);
Random r = new Random();
//创建一个颜色集合 或者也可以通过RGBA颜色直接随机生成
List<Color> clist = new List<Color>();
clist.Add(Color.Yellow);
clist.Add(Color.Green);
clist.Add(Color.Blue);
clist.Add(Color.Pink);
clist.Add(Color.Orange);
clist.Add(Color.Black);
//绘制背景色
g.FillRectangle(new SolidBrush(clist[r.Next(, clist.Count)]), , , , );
//循环随机绘制干扰线
for (int i = ; i < ; i++)
{
Color ccc = clist[r.Next(, clist.Count)]; Pen ppp = new Pen(new SolidBrush(ccc), r.Next(, )); g.DrawLine(ppp, new PointF(r.Next(, ), r.Next(, )), new PointF(r.Next(, ), r.Next(, )));
}
//准备一些字母数字
string all = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
string s = "";
//从上面随机出四个字符拼接
for (int i = ; i < ; i++)
{
int a = r.Next(all.Length);
s += all.Substring(a, );
}
//存入Session
Session["YZM"] = s;
//绘制出验证码
g.DrawString(s, new Font("微软雅黑", ), new SolidBrush(Color.Red), new PointF(, ));
//通过流把绘制好的验证码输出出去
img.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Png);
Response.End();
}

界面接收

void Button1_Click(object sender, EventArgs e)
{
string t1 = TextBox1.Text;
string t2 = Session["YZM"].ToString(); if (t1.ToUpper() == t2.ToUpper())
{
Label1.Text = "验证成功!";
}
else
{
Label1.Text = "验证失败!";
}
}

重新生成验证码(JS)

<script type="text/javascript">
var a = ;
document.getElementById("Image1").onclick = function () {
this.setAttribute("src", "yzm.aspx?id=" + a);
a++;
}
</script>

最新文章

  1. PR&amp;AE插件开发遇到的一个坑
  2. linux系统用户以及用户组管理
  3. Android笔记——Android框架
  4. Elasticsearch 管理文档
  5. 【转】【C#】【Thread】Interlocked 轻量级锁
  6. [codeforces 241]C. Mirror Box
  7. linux bash: sqlplus: command not found 错误处理
  8. Careercup - Google面试题 - 6283958983589888
  9. hdu 2059(dp)
  10. CFNetwork学习总结
  11. java.math.BigInteger使用心得总结(转)
  12. java沙箱机制原理
  13. 算法——A*——HDOJ:1813
  14. LeetCode OJ 122. Best Time to Buy and Sell Stock II
  15. ZeroMQ 教程 001 : 基本概览
  16. 微信小程序入门(四)
  17. RDS MySQL InnoDB 锁等待和锁等待超时的处理
  18. poj1734 Sightseeing trip【最小环】
  19. 20165317Java实验三敏捷开发与XP实践
  20. css3的那些高级选择器二

热门文章

  1. python3&#160; threading初体验
  2. UWP 律师查询 MVVM
  3. 跟我一起云计算(5)——Shards
  4. JSON.parse()和JSON.stringify()
  5. Linux常用指令指南,终端装逼利器
  6. JavaScript基础知识总结(四)
  7. C#泛型详解(转)
  8. java中if和switch哪个效率快
  9. Android之SharedPreferences数据存储
  10. Hadoop的安装与设置(1)