上传水印图片就是一个选择图片、添加水印、进行上传的过程

绘制图片需要准备:

  画布 - 大小

  笔 - 颜色、粗细、样式

  用什么字体

  要画什么(李献策lxc)

步骤:

一、引用 System.Drawing 命名空间

二、设置<上传>按钮点击事件

1、判断是否选中文件

//判断是否选中文件,如果未选中则提示并跳出代码
if (FileUpload1.FileName.Length <= )
{
Response.Write("<script>alert('未选中任何文件!');</script>");
return;
}

2、准备画布,即要加水印的图片

//准备画布,即要加水印的图片
System.Drawing.Image img = System.Drawing.Image.FromStream(FileUpload1.FileContent);

3、绘制 Graphics

//进行绘制
Graphics g = Graphics.FromImage(img);//要绘制的图片 string s = "2017年,鸡年大吉!";//要添加的文字水印
Font f = new Font("微软雅黑", );//文字的字体和大小
Brush b = new SolidBrush(Color.Red);//画刷的颜色
PointF p = new PointF(, );//水印起始坐标 g.DrawString(s,f,b,p);//进行绘制

4、进行保存

//保存图片
string Rpath = "Images/" + DateTime.Now.ToString("yyyyMMddhhmmssms") + FileUpload1.FileName;
img.Save(Server.MapPath(Rpath));

5、设置 Image 控件显示水印图片

//设置Image控件显示图片
Image1.ImageUrl = Rpath;

完整代码:

//<上传>按钮点击事件
void Button1_Click(object sender, EventArgs e)
{
//判断是否选中文件,如果未选中则提示并跳出代码
if (FileUpload1.FileName.Length <= )
{
Response.Write("<script>alert('未选中任何文件!');</script>");
return;
} //准备画布,即要加水印的图片
System.Drawing.Image img = System.Drawing.Image.FromStream(FileUpload1.FileContent); //进行绘制
Graphics g = Graphics.FromImage(img);//要绘制的图片 string s = "2017年,鸡年大吉!";//要添加的文字水印
Font f = new Font("微软雅黑", );//文字的字体和大小
Brush b = new SolidBrush(Color.Red);//画刷的颜色
PointF p = new PointF(, );//水印起始坐标 g.DrawString(s, f, b, p);//进行绘制 //保存图片
string Rpath = "Images/" + DateTime.Now.ToString("yyyyMMddhhmmssms") + FileUpload1.FileName;
img.Save(Server.MapPath(Rpath)); //设置Image控件显示图片
Image1.ImageUrl = Rpath;
}

绘制图片加水印-<上传>按钮代码

C#-WebForm-★ 上传水印图片 ★的更多相关文章

  1. thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印

    今天分享一下thinkphp 3.2.3整合ueditor 1.4,给上传的图片加水印.博主是新手,在这里卡住了很久(>_<) thinkphp 3.2.3整合ueditor 1.4 下载 ...

  2. MVC&WebForm对照学习:文件上传(以图片为例)

    原文  http://www.tuicool.com/articles/myM7fe 主题 HTMLMVC模式Asp.net 博客园::首页::  ::  ::  ::管理 5 Posts :: 0 ...

  3. 上传GIF图片方法!

    有朋友问,如何上传GIF图片,在此做一下说明.方法是:在第二栏“上传图片”栏——选择“无水印”——选择文件(找到文件)——点击上传——点击插入——我选的图片 ——上传成功了!

  4. PHP之ThinkPHP框架(验证码、文件上传、图片处理)

     验证码 验证码是框架自带有的,比之前使用GD库简单方便许多,其实现原理基本相似,都是生成图片,保存验证码值到Session中,表单提交验证码,然后进行值的对比验证. 简单的显示: <form ...

  5. ASP.NET、JAVA跨服务器远程上传文件(图片)的相关解决方案整合

    一.图片提交例: A端--提交图片 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { string u ...

  6. 如何预览将要上传的图片-使用H5的FileAPI

    这篇将要说的东西已经不新鲜了. 参考资料: Reading files in JavaScript using the File APIs (鉴于作者在美国, 我姑且认为作者母语是英语, 当然链接中有 ...

  7. js上传压缩图片

    原文链接:http://blog.csdn.net/iefreer/article/details/53039848 手机用户拍的照片通常会有2M以上,这对服务器带宽产生较大压力. 因此在某些应用下( ...

  8. php 实现接收客户端上传的图片

    今天,遇到一个服务端接收客户端上传图片的需求,经过学习.我写了个简单的demo 以备下次学习. 首先服务器接收的发送图片的请求一定要是post请求,而且请求一定要加上 enctype="mu ...

  9. KindEditor上传本地图片在ASP.NET MVC的配置

    http://www.cnblogs.com/upupto/archive/2010/08/24/1807202.html 本文解决KindEditor上传本地图片在ASP.NET MVC中的配置. ...

随机推荐

  1. 阿里云377秒完成100TB数据排序:秒三星百度

    阿里云377秒完成100TB数据排序:秒三星百度 今日,Sort Benchmark 在官方网站公布了 2015 年排序竞赛的最终成绩.其中,阿里云用不到 7 分钟(377 秒)就完成了 100TB ...

  2. win7旗舰版 中文64位 产品密钥(序列号)

    无需破解即可激活Windows 7旗舰版的"神Key". 第一枚"神Key":TFP9Y-VCY3P-VVH3T-8XXCC-MF4YK: 第二枚"神 ...

  3. 理解Java中字符流与字节流的区别

    1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序 ...

  4. AlertDialog禁止返回键

    android 如何让dialog不消失,即使是用户按了返回键dialog也不消失 解决的问题:软件提示升级的dialog时候,用户有可能按了返回键,但是现在的需求是用户只能按"确定升级&q ...

  5. java list

    List:元素是有序的(怎么存的就怎么取出来,顺序不会乱),元素可以重复(角标1上有个3,角标2上也可以有个3)因为该集合体系有索引 ArrayList:底层的数据结构使用的是数组结构(数组长度是可变 ...

  6. HTML 学习笔记 JavaScript (DOM)

    一 DOM 简介 通过HTML DOM 可以访问JavaScript 文档的所有元素 当网页被加载的时候,浏览器会创建页面的文档对象模型 HTML DOM 模型被构造成对象的树 HTML DOM 树 ...

  7. 如何调试shell脚本

    今天看shell脚本攻略的时候,看见这个方法,感觉还是不错的 #!/bin/bash function DEBUG(){ [[ $_DEBUG == 'on' ]] && $@ || ...

  8. Notes: sensitivity & specificity

    terminology: True positive (TP); False positive (FP): originally negative; True negative (TN); False ...

  9. [LINK]OpenResty

    http://openresty.org/ http://www.tuicool.com/articles/M3yI3y http://www.oschina.net/question/28_6046 ...

  10. oracle:db-link使用

    二个oracle instance,如果需要在一个instance上,直接查询另一个instance上的数据,就要用到db-link 创建: create public database link 链 ...