ASP.NET 是. NET FrameWork 的一部分, 是一项微软公司的技术, 是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术, 它可以在通过 HTTP 请求文档时再在 web 服务器上动态创建它们 指 Active Server Pages(动态服务器页面) , 运行于 IIS(Internet Information Server 服务, 是 Windows 开发的 Web 服务器) 之中的程序
这篇文章主要介绍了 Asp.net 开发之 webform 图片水印和图片验证码的实现方法, 实现思路分为前后台代码和效果展示, 非常不错具有参考借鉴价值, 需要的朋友可以参考下
两者都需要引入命名空间: using System.Drawing;
一图片水印
前台 Photoshuiyin.aspx 代码:
- <div>
- <asp:FileUpload ID="FileUpload1" runat="server" />
- <asp:Button ID="Button1" runat="server" Text="上传" /><br />
- <asp:Image ID="Image1" runat="server" />
- </div>
后台 Photoshuiyin.aspx.cs 代码:
- protected void Page_Load(object sender, EventArgs e)
- {
- Button1.Click += Button1_Click;
- }
- void Button1_Click(object sender, EventArgs e)
- {
- //1 制作画布
- System.Drawing.Image img = System.Drawing.Image.FromStream(FileUpload1.FileContent);
- Graphics g = Graphics.FromImage(img);
- // 水印样式: 画什么东西
- string a = "http://www.itnba.com";
- // 字体大小
- Font f = new Font("黑体", 30);
- // 颜色
- Brush b = new SolidBrush(Color.Red);
- //0,0 开始画水印的位置
- g.DrawString(a, f, b, 0, 0);
- // 保存路径
- string path = "images/" + FileUpload1.FileName;
- img.Save(Server.MapPath(path));
- // 在 image 控件中展示
- Image1.ImageUrl = path;
- }
效果展示:
二图片验证码
前台 Photoyanzhengma.aspx 代码:
- <form id="form1" runat="server">
- <div>
用户名:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<br />
密码:<asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<br />
验证码:<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
- <asp:Image ID="Image1" runat="server" ImageUrl="YZM.aspx" />
- <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
- <br />
- <asp:Button ID="Button1" runat="server" Text="Button" />
- </div>
- </form>
- </body>
- </html>
- <script type="text/javascript">
- var aaa = 1;
- document.getElementById("Image1").onclick = function () {
- this.setAttribute("src", "YZM.aspx?id=" + aaa);
- aaa++;
- };
- </script>
链接页面 YZM.aspx 无需前台代码, 后台代码是:
- protected void Page_Load(object sender, EventArgs e)
- {
- Random r = new Random();
- string aaa = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
- // 生成画布
- Bitmap img = new Bitmap(80, 30);
- // 画布背景色泛性组合
- List<Color> Clist = new List<Color>();
- Clist.Add(Color.Yellow);
- Clist.Add(Color.Green);
- Clist.Add(Color.Blue);
- Clist.Add(Color.Aqua);
- Clist.Add(Color.Orange);
- Clist.Add(Color.Pink);
- Graphics g = Graphics.FromImage(img);
- g.FillRectangle(new SolidBrush(Clist[r.Next(0, Clist.Count)]), 0, 0, 80, 30);
- // 随机生成显示的验证码组合
- string str = "";
- for (int i = 0; i < 4; i++)
- {
- str += aaa.Substring(r.Next(0, aaa.Length), 1);
- }
- Session["YZM"] = str;
- Font f = new Font("黑体", 20);
- Brush b = new SolidBrush(Color.Red);
- // 生成
- g.DrawString(str, f, b, 10, 0);
- // 添加干扰线
- for (int i = 0; i < r.Next(6, 20); i++)
- {
- Brush bb = new SolidBrush(Clist[r.Next(0, Clist.Count)]);
- Pen p = new Pen(bb, 1);
- g.DrawLine(p, r.Next(0, 80), r.Next(0, 30), r.Next(0, 80), r.Next(0, 30));
- }
- // 保存完成
- img.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Jpeg);
- Response.End();
- }
效果展示:
以上所述是小编给大家介绍的 Asp.net 开发之 webform 图片水印和图片验证码的实现方法, 希望对大家有所帮助, 如果大家有任何疑问请给我留言, 小编会及时回复大家的在此也非常感谢大家对 PHPERZ 网站的支持!
来源: http://www.phperz.com/article/18/0312/352439.html