c#图片添加水印
今天讲一个上传图片添加水印的方法,直接上代码吧
protected void Button1_Click(object sender, EventArgs e)
{
int location = Convert.ToInt32(this.DropDownList1.SelectedValue);//获取水印放置位置
//判断FileUpload里是否有文件地址
if (FileUpload1.HasFile)
{
if ((FileUpload1.PostedFile.ContentType == "image/pjpeg") || (FileUpload1.PostedFile.ContentType == "image/jpeg") || (FileUpload1.PostedFile.ContentType == "image/gif") || (FileUpload1.PostedFile.ContentType == "image/bmp") || (FileUpload1.PostedFile.ContentType == "image/x-png") || (FileUpload1.PostedFile.ContentType == "image/png"))//获取客户端发送的文件的MIME内容类型
{
//上传文件总大小
int fileLength = 0;
fileLength = fileLength + FileUpload1.PostedFile.ContentLength;
//大小不能超过maxLengthk
int maxLength = 2048;
int sysLength = maxLength * 1024;
if (fileLength > sysLength)
{
Response.Write("<script>alert(''''该图片大小超过2M限制'''')</script>");
}
else
{
string[] strSpil = FileUpload1.FileName.Split(''''.'''');//将此地址用.号进行分割(img/1.jpg)
string strEnd = strSpil[strSpil.Length - 1].ToLower();//得到后面的("jpg", "gif", "bmp", "png","jpeg","JPG","GIF","BMP","PNG","JPEG")
string[] strPic = new string[] { "jpg", "gif", "bmp", "png", "jpeg", "JPG", "GIF", "BMP", "PNG", "JPEG" };//定义一个数组里面放文件格式
List<string> arry = new List<string>();
arry.AddRange(strPic); //定义一个可变数组,用于放文件格式
if (arry.Contains(strEnd))//判断这个数组中是否有("jpg", "gif", "bmp", "png","jpeg","JPG","GIF","BMP","PNG","JPEG")
{
Random rand = new Random();//定义一个随机数,为了防止你要上传得图片重名
string strName = DateTime.Now.ToString("yyyymmmddhhss") + rand.Next(100, 9999).ToString();//得到不同得名字
string strPointEnd = "." + strEnd;
string strFile = Server.MapPath("~/upfile");//获取其相对地址
FileUpload1.SaveAs(strFile + "/" + strName + strPointEnd);//保存原始图片
string src = strFile + "/" + strName + strPointEnd;
//进行水印添加处理--------------------------------------------
//水印图片
string shuiyin = "~/watermark/logo.png";
//加载文件
System.Drawing.Image Cover;
Cover = System.Drawing.Image.FromFile(src);
//加载水印文件
System.Drawing.Image water = System.Drawing.Image.FromFile(Request.MapPath(shuiyin));
//创建画布
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(Cover);
if (location == 1)//左上方
{
//在image上绘制水印
g.DrawImage(water, new Rectangle(0, 0, water.Width, water.Height), 0, 0, water.Width, water.Height, GraphicsUnit.Pixel);
}
else if (location == 2)//左下方
{
//在image上绘制水印
g.DrawImage(water, new Rectangle(0, Cover.Height - water.Height, water.Width, water.Height), 0, 0, water.Width, water.Height, GraphicsUnit.Pixel);
}
else if (location == 3)//右上方
{
//在image上绘制水印
g.DrawImage(water, new Rectangle(Cover.Width - water.Width, 0, water.Width, water.Height), 0, 0, water.Width, water.Height, GraphicsUnit.Pixel);
}
else if (location == 4)//右下方
{
//在image上绘制水印
g.DrawImage(water, new Rectangle(Cover.Width - water.Width, Cover.Height - water.Height, water.Width, water.Height), 0, 0, water.Width, water.Height, GraphicsUnit.Pixel);
}
else if (location == 5)//正中间
{
//在image上绘制水印
g.DrawImage(water, new Rectangle((Cover.Width - water.Width) / 2, (Cover.Height - water.Height) / 2, water.Width, water.Height), 0, 0, water.Width, water.Height, GraphicsUnit.Pixel);
}
else
{
//在image上绘制水印
g.DrawImage(water, new Rectangle(Cover.Width - water.Width, Cover.Height - water.Height, water.Width, water.Height), 0, 0, water.Width, water.Height, GraphicsUnit.Pixel);
}
//释放画布
g.Dispose();
//释放水印图片
water.Dispose();
Cover.Save(HttpContext.Current.Server.MapPath("~/upfile/") + strName+"s"+ "." + strEnd);//保存打过水印的图片
Cover.Dispose();
string src1 = "upfile/" + strName + "s" + "." + strEnd;
Response.Write("<a href="+src1+">点击查看水印图片</a>");
}
else
{
Response.Write("<script>alert(''''该图片格式不能上传!'''')</script>");
}
}
}
else
{
Response.Write("<script>alert(''''该图片格式不能上传!'''')</script>");
}
}
else
{
Response.Write("<script>alert(''''请选择图片路径!'''')</script>");
}
}
转载地址:http://www.aspnetjia.com/Cont-39.html
c#图片添加水印的更多相关文章
- Android 图片添加水印图片或者文字
给图片添加水印的基本思路都是载入原图,添加文字或者载入水印图片,保存图片这三个部分 添加水印图片: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...
- java实现给图片添加水印
package michael.io.image; import java.awt.AlphaComposite; import java.awt.Graphics2D; import java.aw ...
- java.imageIo给图片添加水印
最近项目在做一个商城项目, 项目上的图片要添加水印①,添加图片水印;②:添加文字水印; 一下提供下个方法,希望大家可以用得着: package com.blogs.image; import java ...
- ASP.NET -- WebForm -- 给图片添加水印标记
ASP.NET -- WebForm: 给图片添加水印标记 ASP.NET:使用 WebForm(C#) 制作一个简单的为图片添加水印的页面. 1. Test2.aspx文件 <%@ Page ...
- JAVA给图片添加水印
package com.test; import org.junit.Test; import javax.imageio.ImageIO; import java.awt.*; import jav ...
- 【Python】给图片添加水印的Python及Golang实现
前言 不知道大家有没有这样的习惯,一篇比较得意的博客在发表一段时间之后会特别关注,前段时间一篇写到凌晨的博客被 码迷 这个网关爬取之后发表了,因为搜索引擎先爬取码迷的,所以我的博客无法被搜索到,即使直 ...
- .net为图片添加水印(转) jpg png和gif格式
.net为图片添加水印(转) jpg png和gif格式 .net为图片添加水印(转) jpg png和gif格式,转自csdn的hyde82,现在跟大家一起来分享下: 利 用.net中System. ...
- iOS边练边学--(Quartz2D)图片添加水印
一.给图片添加水印的基本步骤 加载图片 手动创建位图上下文 绘制原生的图片 给原生的图片添加文字 生成一张图片给我们,从上下文中获取图片 关闭上下文 二.注意:位图上下文的获取方式跟layer上下文不 ...
- int.TryParse非预期执行引发的思考 ASP.NET -- WebForm -- 给图片添加水印标记 Windows -- 使用批处理文件.bat删除旧文件
int.TryParse非预期执行引发的思考 问题出现 这天在写一个页面,想谨慎些就用了int.TryParse,结果出问题了. 代码如下: Copy int id = 1000; //Reque ...
- 海报工厂之(一)android 如何给图片添加水印和文字
在Android中如何给图片添加水印,下面截取了部分核心代码,仅供参考: /** * 获取图片缩小的图片 * @param src * @return */ ...
随机推荐
- mvc 方法只允许ajax访问
有时候我们写一些方法 只想在ajax使用 其他的不想暴露 就可以对方法进行限制 如下: [AttributeUsage(AttributeTargets.Method)] public class ...
- lintcode: k Sum 解题报告
K SUM My Submissions http://www.lintcode.com/en/problem/k-sum/ 题目来自九章算法 13% Accepted Given n distinc ...
- C# Like参数化 小记
strBuilder.Append(" and b.name like '%' + @name + '%'"); parameters.Add(new SqlParameter(& ...
- PopupWindow错误:PopupWindow$1.onScrollChanged 出现 NullPointerException和PopupViewContainer.dispatchKeyEvent 出现 NullPointerException
错误1: java.lang.NullPointerException at android.widget.PopupWindow$1.onScrollChanged(PopupWindow.java ...
- WinStore控件之Button
1 Buton入门简单应用 <StackPanel > <Button Content="按钮1" Height="80" Name=&quo ...
- cmd窗口编码方式的修改
cmd默认的编码是采用GBK regedit HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe\CodePage 十进制:936 GB ...
- WCF中因序列化问题引起的异常和错误。
尝试对参数 http://tempuri.org/ 进行序列化时出错: parameters.InnerException 消息是“不应为数据协定名称为“DBNull:http://schemas.d ...
- 十家国内知名的EDM服务提供商
国内的EDM服务商多若繁星.下面博主为大家介绍十家国内知名的EDM服务提供商. 一.Webpower 威勃庞尔. 官方网站是:www.webpower.asia.作为全球领先的邮件营销解决方案提供商, ...
- 经典SQL语句大全(网络资源共享)
下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELET ...
- 购物车增加、减少商品时动画效果:jQuery.Fly.js插件使用方法
某些电商网站加入购物车和减少购物车商品数量时,有个小动画,以抛物线形式增减,如图: 这里用到了第三方jQuery.Fly.js插件(底层依赖Jquery库,地址:https://github ...