zoukankan      html  css  js  c++  java
  • 上传带水印的图片、图片验证码

    一、图片加水印

    前台代码:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default1.aspx.cs" Inherits="Default1" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:FileUpload ID="FileUpload1" runat="server" /><asp:Button ID="Button1" runat="server" Text="上传" /><br />
            <asp:Image ID="Image1" runat="server" />
        </div>
        </form>
    </body>
    </html>

    后台代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Drawing;
    
    public partial class Default1 : System.Web.UI.Page
    {
        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);
    
            //2、往上面画上水印
            Graphics g = Graphics.FromImage(img);//这个是绘制方法,等号右边是往那张图片上绘制
            string s = "http://www.itnba.com"; //绘制的字符串
            Font f = new Font("微软雅黑",18);//绘制使用的字体
            SolidBrush b = new SolidBrush(Color.Red);//绘制使用的刷子,设置颜色
    
            g.DrawString(s, f, b, 0, 0); //绘制完毕
    
            //3、保存到服务器指定路径,并且在Image控件中显示
            string path = Server.MapPath("Uploads/" + FileUpload1.FileName);
    
            img.Save(path);//将绘制完的图片保存,注意:千万不要把选择的图片保存
    
            Image1.ImageUrl = "Uploads/" + FileUpload1.FileName;
    
        }
    }

    二、图片验证码

    1、首先引用命名空间:system.Drawing; 

    2、将aspx页面当做图片路径,在load事件中进行绘制并保存在内存流中

    前台代码:

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>
    
    <!DOCTYPE html>
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
        <title></title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            请输入验证码:<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><asp:Image ID="Image1" runat="server" ImageUrl="~/YZM.aspx" /><br />
            <asp:Button ID="Button1" runat="server" Text="验证" /><asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
        </div>
        </form>
    </body>
    </html>
    <script type="text/javascript">
        var aaa = 0;
        document.getElementById('Image1').onclick = function () {
            this.setAttribute("src", "yzm.aspx?id="+aaa);
            aaa++;
    
        };
    
    </script>

    后台代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    
    public partial class Default2 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Button1.Click += Button1_Click;
        }
    
        void Button1_Click(object sender, EventArgs e)
        {
            if (TextBox1.Text == Session["YZM"].ToString())
            {
                Label1.Text = "正确!";
            }
            else
            {
                Label1.Text = "错误!";
            }
        }
    }

    生成图片验证码的后台代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Drawing;
    
    public partial class YZM : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            //1、准备画布
            Bitmap img = new Bitmap(60, 30);
    
            //2、往画布上绘制验证码
    
            string all = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
            string aaa = "";
            Random r = new Random();
            for (int i = 0; i < 4; i++)
            {
                aaa += all.Substring(r.Next(all.Length), 1);
            }
    
            Session["YZM"] = aaa;
            Graphics g = Graphics.FromImage(img);
            Font f = new Font("微软雅黑",16);
            SolidBrush b  = new SolidBrush(Color.Green);
    
            g.DrawString(aaa, f, b, 0, 0);
    
            img.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Png);
        }
    }
  • 相关阅读:
    HDU 1358 Period
    HDU 1867 A + B for you again
    jquery的height()和javascript的height总结,js获取屏幕高度
    [前端] jquery验证手机号、身份证号、中文名称
    通过GitHub Pages建立个人站点(详细步骤)
    jQuery中多个元素的Hover事件
    jquery判断密码是否一致?
    php 5.6以上可以采用new PDD连接数据库的方法。
    如何学习html画布呢(canvas)
    跨年总结2015,明年就是2016了
  • 原文地址:https://www.cnblogs.com/123lucy/p/5815663.html
Copyright © 2011-2022 走看看