码迷,mamicode.com
首页 > Web开发 > 详细

文件上传加水印

时间:2017-09-03 16:43:17      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:return   filename   time   相对   画布   引用   一个   tostring   上传文件   

在form表单写的代码(客户端源码)

 

‘FileUpload’控件:选择文件用的,点击可以选择文件
‘Image’控件:展示图片用的,所选的文件在这里展示

accept=".jpg,.png,.jpeg"图片文件加限制的属性
<form id="form1" runat="server">

        <asp:FileUpload ID="FileUpload1" runat="server" accept=".jpg,.png,.jpeg" />
        <asp:Button ID="Button1" runat="server" Text="上传" />
        <asp:Image ID="Image1" runat="server" />
    </form>

在后台服务端写按钮的点击事件

‘FileUpload1.SaveAs(这里面放的是一个路径);’

新建一个文件夹,把所有的上传文件都放在这个文件夹里

 

//判断控件是否选中,如果是非选中的话,直接‘return’走
        if (!FileUpload1.HasFile) return;
        //为了防止重名的问题,在前面加上上传的时间
        string path = "uploads/"+DateTime.Now.ToString("yyyyMMddHHssms")+FileUpload1.FileName;
        //Server.MapPath()路径映射,映射成绝对路径,把谁映射?把‘path’映射
        FileUpload1.SaveAs(Server.MapPath(path));
        //上传上之后,在界面上展示出来
        Image1.ImageUrl = path;       //这里是相对路径

 

以上是文件的基本上传,还没有加上水印

图片水印:

using System.Drawing;   首先的先引用一个画画的类(命名空间)这样可以使用各种画画的类,进行画画

然后,准备画布:System.Drawing.Image img = System.Drawing.Image.FromStream(FileUpload1.FileContent);

画画是在哪里画 :Graphics g = Graphics.FromImage(img);

protected void Page_Load(object sender, EventArgs e)
    {
        Button1.Click += Button1_Click;
    }

    void Button1_Click(object sender, EventArgs e)
    {
        if (!FileUpload1.HasFile) return;
        //画布
        System.Drawing.Image img = System.Drawing.Image.FromStream(FileUpload1.FileContent);
        //在哪张图上画
        Graphics g = Graphics.FromImage(img);
        //要画什么东西(内容)
        string s = "汉企奇点网络0504专用章";
        //字体
        Font f = new Font("黑体", 20);
        //画笔
        Brush b = new SolidBrush(Color.Red);
        //坐标轴
        PointF p = new PointF(10, 10);
        //把参数放上
        g.DrawString(s,f,b,p);
        string path = "uploads/" + DateTime.Now.ToString("yyyyMMddHHmmssms") + FileUpload1.FileName;
        img.Save(Server.MapPath(path));

        Image1.ImageUrl = path;
    }

 

如果是把两张图片进行叠加的话,需要改一个属性

g.DrawString()改成  g.DrawImage()

//两张图片叠加
        g.DrawImage(System.Drawing.Image.FromFile(Server.MapPath("uploads/222.png")), p);

 

文件上传加水印

标签:return   filename   time   相对   画布   引用   一个   tostring   上传文件   

原文地址:http://www.cnblogs.com/yunpeng521/p/7469860.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!