NET 用户控件 文件上传,并给图片文件加水印(增加文字水印文字设置)
来源:互联网 发布:淘宝天猫京东对比 编辑:程序博客网 时间:2024/05/16 07:06
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
/**//// <summary>
/// 水印用户控件
/// 作者:成海涛
/// 时间:2006-9-21
/// E-mail:kingter520@163.com
/// 说明:文字水印的位置有待完善,建议用图片水印
/// </summary>
public partial class UpFile : System.Web.UI.UserControl
...{
string _strNewFileFolder = "UpLoadFile/"; //文件上传的目录
int _NewImgpx = 120; //缩略图尺寸
bool _IsThumb = true; //是否启用缩略图 true:启用 false:不启用
bool _IsWatermark = true; //是否启用水印 true:启用 false:不启用
int _WatemarkPos = 9; //水印位置 1:左上角 2:水平居中垂直顶部 3:右上角 4:垂直居中水平靠左 5:居中 6:垂直居中水平靠右 7:左下角 8:水平居中垂直底部 9:右下角
string _WatemarkType = "txt"; //水印类型 txt:文字水印 img:图片水印
string _WatemarkText = "西部数字网 www.idcwest.net"; //水印文字
string _WatemarkFont = "Verdana"; //水印字体
string _WatemarkTextColor = "#FFFFFF"; //水印文字颜色
int _WatemarkFontSize = 18; //水印文字像素
string _WatemarkImg = "mark.png"; //水印图片
int _FileSizeMax = 2048; //限制上传文件大小
string _srcFileName; //上传文件原文件名
string _srcFileExtension; //扩展名
string _strFileName; //新文件名
string _strFileType; //文件类型
int _strFileSize; //文件大小 单位 KB
int _OldFileWidth; //原图宽度
int _OldFileHeight; //原图高度
int _NewImgHeight; //缩略图高度
int _NewImgWidth; //缩略图宽度
string _thumbImgPath; //缩略图完整地址
string _imagePath; //返回上传图片完整地址
string _errMsg; //返回出错提示
string _strFileFolder;
int _WatemarkPosX = 5;
int _WatemarkPosY = 5;
DateTime now = DateTime.Now; //取当前的时间到DateTime类的对象now中
public delegate void OnUploadEvent(object sender, EventArgs e);
public event OnUploadEvent OnUpload;
/**//// <summary>
/// 设置文件上传的目录
/// </summary>
public string NewFileFolder
...{
set ...{ _strNewFileFolder = value; }
}
/**//// <summary>
/// 设置缩略图的尺寸
/// </summary>
public int NewImgpx
...{
set ...{ _NewImgpx = value; }
}
/**//// <summary>
/// 是否启用缩略图
/// </summary>
///
public bool IsThumb
...{
set ...{ _IsThumb = value; }
}
/**//// <summary>
/// 是否启用水印
/// </summary>
public bool IsWatermark
...{
set ...{ _IsWatermark = value; }
}
/**//// <summary>
/// 设置水印位置
/// </summary>
public int WatemarkPos
...{
set ...{ _WatemarkPos = value; }
}
/**//// <summary>
/// 设置水印类型 txt:文字水印 img:图片水印
/// </summary>
public string WatemarkType
...{
set ...{ _WatemarkType = value; }
}
/**//// <summary>
/// 设置水印文字
/// </summary>
public string WatemarkText
...{
set ...{ _WatemarkText = value; }
}
/**//// <summary>
/// 设置水印字体
/// </summary>
public string WatemarkFont
...{
set ...{ _WatemarkFont = value; }
}
/**//// <summary>
/// 设置水印字号
/// </summary>
public int WatemarkFontSize
...{
set ...{ _WatemarkFontSize = value; }
}
/**//// <summary>
/// 设置水印文字颜色
/// </summary>
public string WatemarkTextColor
...{
set ...{ _WatemarkTextColor = value; }
}
/**//// <summary>
/// 设置水印图片
/// </summary>
public string WatemarkImg
...{
set ...{ _WatemarkImg = value; }
}
/**//// <summary>
/// 设置上传文件的限制大小
/// </summary>
public int FileSizeMax
...{
set ...{ _FileSizeMax = value; }
}
/**//// <summary>
/// 上传文件原文件名
/// </summary>
public string OldFileName
...{
get ...{ return _srcFileName; }
}
/**//// <summary>
/// 扩展名
/// </summary>
public string OldFileExtension
...{
get ...{ return _srcFileExtension; }
}
/**//// <summary>
/// 新文件名
/// </summary>
public string FileName
...{
get ...{ return _strFileName; }
}
/**//// <summary>
/// 文件类型
/// </summary>
public string FileType
...{
get ...{ return _strFileType; }
}
/**//// <summary>
/// 文件大小 单位 KB
/// </summary>
public int FileSize
...{
get ...{ return _strFileSize; }
}
/**//// <summary>
/// 原图宽度
/// </summary>
public int OldFileWidth
...{
get ...{ return _OldFileWidth; }
}
/**//// <summary>
/// 原图高度
/// </summary>
public int OldFileHeight
...{
get ...{ return _OldFileHeight; }
}
/**//// <summary>
/// 缩略图高度
/// </summary>
public int ThumbImageHeight
...{
get ...{ return _NewImgHeight; }
}
/**//// <summary>
/// 缩略图宽度
/// </summary>
public int ThumbImageWidth
...{
get ...{ return _NewImgWidth; }
}
/**//// <summary>
/// 缩略图完整地址
/// </summary>
public string ThumbImagePath
...{
get ...{ return _thumbImgPath; }
}
/**//// <summary>
/// 返回上传图片完整地址
/// </summary>
public string FilePath
...{
get ...{ return _imagePath; }
}
/**//// <summary>
/// 返回出错提示
/// </summary>
public string ErrMsg
...{
get ...{ return _errMsg; }
}
protected void Page_Load(object sender, EventArgs e)
...{
_WatemarkImg = Server.MapPath("~/") + _WatemarkImg; //水印图片
//文件上传的目录
_strNewFileFolder += now.Year.ToString() + "/";
_strFileFolder = Server.MapPath("~/") + _strNewFileFolder;
}
protected void Button1_ServerClick(object sender, EventArgs e)
...{
//随机数
Random Rnd = new Random();
int strRnd = Rnd.Next(1, 99);
//新文件名称
string strFileName = now.Month.ToString() + now.Day.ToString() + now.Hour.ToString() + now.Minute.ToString() + now.Second.ToString() + strRnd.ToString();
if (UpLoadFile.PostedFile.ContentLength != 0) //判断选取对话框的文件长度是否为0
...{
//检测目录是否存在,不存在就建立目录
if (!Directory.Exists(_strFileFolder))
...{
Directory.CreateDirectory(_strFileFolder);
}
//获取原文件信息
string srcFile = UpLoadFile.PostedFile.FileName;
string srcFileName = Path.GetFileName(srcFile.ToString()); //原文件名
string srcFileExtension = Path.GetExtension(srcFile.ToString()); //原文件扩展名
string strFileType = UpLoadFile.PostedFile.ContentType; //获得文件类型
int strFileSize = UpLoadFile.PostedFile.ContentLength / _FileSizeMax; //获得文件体积大小,单位KB
//限制文件上传大小
if (strFileSize > _FileSizeMax)
...{
_errMsg = "上传文件超过限制,文件大小限制为:" + _FileSizeMax + " KB";
return;
}
strFileName = strFileName + srcFileExtension; //新文件名包括扩展名
_imagePath = _strNewFileFolder + strFileName; //返回上传后的图片路径
//输出
_srcFileName = srcFileName; //上传文件原文件名
_srcFileExtension = srcFileExtension; //扩展名
_strFileName = strFileName; //新文件名
_strFileType = strFileType; //文件类型
_strFileSize = strFileSize; //文件大小 单位 KB
//判断是否为图片
bool IsImg = true;
if (UpLoadFile.PostedFile.ContentType.IndexOf("image") < 0)
...{
IsImg = false;
}
if (IsImg == false)
...{
UpLoadFile.PostedFile.SaveAs(_strFileFolder + strFileName); //非图片文件上传
}
else
...{
//加水印并上传
if (_IsWatermark == true)
...{
System.Drawing.Image image;
if (strFileType == "image/bmp") //bmp图片格式
image = System.Drawing.Bitmap.FromStream(UpLoadFile.PostedFile.InputStream);
else
image = System.Drawing.Image.FromStream(UpLoadFile.PostedFile.InputStream);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(image);
if (_WatemarkType == "txt") //文字水印
...{
//将图片绘制到graphics中
g.DrawImage(image, 0, 0, image.Width, image.Height);
//设置文字的属性
System.Drawing.Font f = new System.Drawing.Font(_WatemarkFont, _WatemarkFontSize, System.Drawing.GraphicsUnit.Pixel);
//判断图片的大小,如果图片过小,不写文字
if (image.Width < 200)
//在此设定在图片上所加的文字
_WatemarkText = "";
//写的文字的起始位置,x,y坐标
_WatemarkPosX = 5;
_WatemarkPosY = 5;
//设置字体的颜色
System.Drawing.Brush b = new System.Drawing.SolidBrush(System.Drawing.ColorTranslator.FromHtml(_WatemarkTextColor));
System.Drawing.StringFormat fm = new System.Drawing.StringFormat();
//水印放置左上角
if (_WatemarkPos == 1)
...{
fm.Alignment = System.Drawing.StringAlignment.Near;
fm.LineAlignment = System.Drawing.StringAlignment.Near;
}
//水平居中垂直顶部
if (_WatemarkPos == 2)
...{
fm.Alignment = System.Drawing.StringAlignment.Center;
fm.LineAlignment = System.Drawing.StringAlignment.Near;
}
//右上角
if (_WatemarkPos == 3)
...{
fm.Alignment = System.Drawing.StringAlignment.Far;
fm.LineAlignment = System.Drawing.StringAlignment.Near;
}
//垂直居中水平靠左
if (_WatemarkPos == 4)
...{
fm.Alignment = System.Drawing.StringAlignment.Near;
fm.LineAlignment = System.Drawing.StringAlignment.Center;
}
//居中
if (_WatemarkPos == 5)
...{
fm.Alignment = System.Drawing.StringAlignment.Center;
fm.LineAlignment = System.Drawing.StringAlignment.Center;
}
//垂直居中水平靠右
if (_WatemarkPos == 6)
...{
fm.Alignment = System.Drawing.StringAlignment.Far;
fm.LineAlignment = System.Drawing.StringAlignment.Center;
}
//左下角
if (_WatemarkPos == 7)
...{
fm.Alignment = System.Drawing.StringAlignment.Near;
fm.LineAlignment = System.Drawing.StringAlignment.Far;
}
//水平居中垂直底部
if (_WatemarkPos == 8)
...{
fm.Alignment = System.Drawing.StringAlignment.Center;
fm.LineAlignment = System.Drawing.StringAlignment.Far;
}
//水印放置右下角
if (_WatemarkPos == 9)
...{
fm.Alignment = System.Drawing.StringAlignment.Far;
fm.LineAlignment = System.Drawing.StringAlignment.Far;
}
//写字
g.DrawString(_WatemarkText, f, b, new System.Drawing.RectangleF(0, 0, image.Width, image.Height), fm);
//释放graphics
g.Dispose();
//保存加上水印的图片
image.Save(_strFileFolder + strFileName);
//释放image
image.Dispose();
}
else if (_WatemarkType == "img") //图片水印
...{
System.Drawing.Image copyImage = System.Drawing.Image.FromFile(_WatemarkImg);
//水印放置左上角
if (_WatemarkPos == 1)
...{
_WatemarkPosX = 5;
_WatemarkPosY = 5;
}
//水平居中垂直顶部
if (_WatemarkPos == 2)
...{
_WatemarkPosX = (image.Width - copyImage.Width) / 2;
_WatemarkPosY = 5;
}
//右上角
if (_WatemarkPos == 3)
...{
_WatemarkPosX = image.Width - copyImage.Width - 5;
_WatemarkPosY = 5;
}
//垂直居中水平靠左
if (_WatemarkPos == 4)
...{
_WatemarkPosX = 5;
_WatemarkPosY = (image.Height - copyImage.Height) / 2;
}
//居中
if (_WatemarkPos == 5)
...{
_WatemarkPosX = (image.Width - copyImage.Width) / 2;
_WatemarkPosY = (image.Height - copyImage.Height) / 2;
}
//垂直居中水平靠右
if (_WatemarkPos == 6)
...{
_WatemarkPosX = image.Width - copyImage.Width - 5;
_WatemarkPosY = (image.Height - copyImage.Height) / 2;
}
//左下角
if (_WatemarkPos == 7)
...{
_WatemarkPosX = 5;
_WatemarkPosY = image.Height - copyImage.Height - 5;
}
//水平居中垂直底部
if (_WatemarkPos == 8)
...{
_WatemarkPosX = (image.Width - copyImage.Width) / 2;
_WatemarkPosY = image.Height - copyImage.Height - 5;
}
//水印放置右下角
if (_WatemarkPos == 9)
...{
_WatemarkPosX = image.Width - copyImage.Width - 5;
_WatemarkPosY = image.Height - copyImage.Height - 5;
}
if (copyImage.Height < image.Height && copyImage.Width < image.Width)
...{
//将水印打印到上传图片上去
g.DrawImage(copyImage, new System.Drawing.Rectangle(_WatemarkPosX, _WatemarkPosY, copyImage.Width, copyImage.Height), 0, 0, copyImage.Width, copyImage.Height, System.Drawing.GraphicsUnit.Pixel);
//释放graphics
g.Dispose();
}
//保存图片
image.Save(_strFileFolder + strFileName);
//释放image
image.Dispose();
}
}
else
...{
UpLoadFile.PostedFile.SaveAs(_strFileFolder + strFileName); //不加水印上传
}
//获得图片尺寸
int OldFileHeight, OldFileWidth;
System.Drawing.Image img = System.Drawing.Image.FromStream(UpLoadFile.PostedFile.InputStream);
ōldFileHeight = img.Height;
ōldFileWidth = img.Width;
//创建缩略图
if (_IsThumb == true)
...{
int NewImgHeight, NewImgWidth;
if (OldFileWidth > OldFileHeight)
...{
NewImgWidth = _NewImgpx;
NewImgHeight = (int)(OldFileHeight / (float)OldFileWidth * _NewImgpx);
}
else
...{
NewImgHeight = _NewImgpx;
NewImgWidth = (int)(OldFileWidth / (float)OldFileHeight * _NewImgpx);
}
//如果缩略图的尺寸大于原图尺寸,则用原图片大小
if (NewImgHeight >= OldFileHeight && NewImgWidth >= OldFileWidth)
...{
NewImgHeight = OldFileHeight;
NewImgWidth = OldFileWidth;
}
System.Drawing.Image NewImg = img.GetThumbnailImage(NewImgWidth, NewImgHeight, null, System.IntPtr.Zero);
&
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
/**//// <summary>
/// 水印用户控件
/// 作者:成海涛
/// 时间:2006-9-21
/// E-mail:kingter520@163.com
/// 说明:文字水印的位置有待完善,建议用图片水印
/// </summary>
public partial class UpFile : System.Web.UI.UserControl
...{
string _strNewFileFolder = "UpLoadFile/"; //文件上传的目录
int _NewImgpx = 120; //缩略图尺寸
bool _IsThumb = true; //是否启用缩略图 true:启用 false:不启用
bool _IsWatermark = true; //是否启用水印 true:启用 false:不启用
int _WatemarkPos = 9; //水印位置 1:左上角 2:水平居中垂直顶部 3:右上角 4:垂直居中水平靠左 5:居中 6:垂直居中水平靠右 7:左下角 8:水平居中垂直底部 9:右下角
string _WatemarkType = "txt"; //水印类型 txt:文字水印 img:图片水印
string _WatemarkText = "西部数字网 www.idcwest.net"; //水印文字
string _WatemarkFont = "Verdana"; //水印字体
string _WatemarkTextColor = "#FFFFFF"; //水印文字颜色
int _WatemarkFontSize = 18; //水印文字像素
string _WatemarkImg = "mark.png"; //水印图片
int _FileSizeMax = 2048; //限制上传文件大小
string _srcFileName; //上传文件原文件名
string _srcFileExtension; //扩展名
string _strFileName; //新文件名
string _strFileType; //文件类型
int _strFileSize; //文件大小 单位 KB
int _OldFileWidth; //原图宽度
int _OldFileHeight; //原图高度
int _NewImgHeight; //缩略图高度
int _NewImgWidth; //缩略图宽度
string _thumbImgPath; //缩略图完整地址
string _imagePath; //返回上传图片完整地址
string _errMsg; //返回出错提示
string _strFileFolder;
int _WatemarkPosX = 5;
int _WatemarkPosY = 5;
DateTime now = DateTime.Now; //取当前的时间到DateTime类的对象now中
public delegate void OnUploadEvent(object sender, EventArgs e);
public event OnUploadEvent OnUpload;
/**//// <summary>
/// 设置文件上传的目录
/// </summary>
public string NewFileFolder
...{
set ...{ _strNewFileFolder = value; }
}
/**//// <summary>
/// 设置缩略图的尺寸
/// </summary>
public int NewImgpx
...{
set ...{ _NewImgpx = value; }
}
/**//// <summary>
/// 是否启用缩略图
/// </summary>
///
public bool IsThumb
...{
set ...{ _IsThumb = value; }
}
/**//// <summary>
/// 是否启用水印
/// </summary>
public bool IsWatermark
...{
set ...{ _IsWatermark = value; }
}
/**//// <summary>
/// 设置水印位置
/// </summary>
public int WatemarkPos
...{
set ...{ _WatemarkPos = value; }
}
/**//// <summary>
/// 设置水印类型 txt:文字水印 img:图片水印
/// </summary>
public string WatemarkType
...{
set ...{ _WatemarkType = value; }
}
/**//// <summary>
/// 设置水印文字
/// </summary>
public string WatemarkText
...{
set ...{ _WatemarkText = value; }
}
/**//// <summary>
/// 设置水印字体
/// </summary>
public string WatemarkFont
...{
set ...{ _WatemarkFont = value; }
}
/**//// <summary>
/// 设置水印字号
/// </summary>
public int WatemarkFontSize
...{
set ...{ _WatemarkFontSize = value; }
}
/**//// <summary>
/// 设置水印文字颜色
/// </summary>
public string WatemarkTextColor
...{
set ...{ _WatemarkTextColor = value; }
}
/**//// <summary>
/// 设置水印图片
/// </summary>
public string WatemarkImg
...{
set ...{ _WatemarkImg = value; }
}
/**//// <summary>
/// 设置上传文件的限制大小
/// </summary>
public int FileSizeMax
...{
set ...{ _FileSizeMax = value; }
}
/**//// <summary>
/// 上传文件原文件名
/// </summary>
public string OldFileName
...{
get ...{ return _srcFileName; }
}
/**//// <summary>
/// 扩展名
/// </summary>
public string OldFileExtension
...{
get ...{ return _srcFileExtension; }
}
/**//// <summary>
/// 新文件名
/// </summary>
public string FileName
...{
get ...{ return _strFileName; }
}
/**//// <summary>
/// 文件类型
/// </summary>
public string FileType
...{
get ...{ return _strFileType; }
}
/**//// <summary>
/// 文件大小 单位 KB
/// </summary>
public int FileSize
...{
get ...{ return _strFileSize; }
}
/**//// <summary>
/// 原图宽度
/// </summary>
public int OldFileWidth
...{
get ...{ return _OldFileWidth; }
}
/**//// <summary>
/// 原图高度
/// </summary>
public int OldFileHeight
...{
get ...{ return _OldFileHeight; }
}
/**//// <summary>
/// 缩略图高度
/// </summary>
public int ThumbImageHeight
...{
get ...{ return _NewImgHeight; }
}
/**//// <summary>
/// 缩略图宽度
/// </summary>
public int ThumbImageWidth
...{
get ...{ return _NewImgWidth; }
}
/**//// <summary>
/// 缩略图完整地址
/// </summary>
public string ThumbImagePath
...{
get ...{ return _thumbImgPath; }
}
/**//// <summary>
/// 返回上传图片完整地址
/// </summary>
public string FilePath
...{
get ...{ return _imagePath; }
}
/**//// <summary>
/// 返回出错提示
/// </summary>
public string ErrMsg
...{
get ...{ return _errMsg; }
}
protected void Page_Load(object sender, EventArgs e)
...{
_WatemarkImg = Server.MapPath("~/") + _WatemarkImg; //水印图片
//文件上传的目录
_strNewFileFolder += now.Year.ToString() + "/";
_strFileFolder = Server.MapPath("~/") + _strNewFileFolder;
}
protected void Button1_ServerClick(object sender, EventArgs e)
...{
//随机数
Random Rnd = new Random();
int strRnd = Rnd.Next(1, 99);
//新文件名称
string strFileName = now.Month.ToString() + now.Day.ToString() + now.Hour.ToString() + now.Minute.ToString() + now.Second.ToString() + strRnd.ToString();
if (UpLoadFile.PostedFile.ContentLength != 0) //判断选取对话框的文件长度是否为0
...{
//检测目录是否存在,不存在就建立目录
if (!Directory.Exists(_strFileFolder))
...{
Directory.CreateDirectory(_strFileFolder);
}
//获取原文件信息
string srcFile = UpLoadFile.PostedFile.FileName;
string srcFileName = Path.GetFileName(srcFile.ToString()); //原文件名
string srcFileExtension = Path.GetExtension(srcFile.ToString()); //原文件扩展名
string strFileType = UpLoadFile.PostedFile.ContentType; //获得文件类型
int strFileSize = UpLoadFile.PostedFile.ContentLength / _FileSizeMax; //获得文件体积大小,单位KB
//限制文件上传大小
if (strFileSize > _FileSizeMax)
...{
_errMsg = "上传文件超过限制,文件大小限制为:" + _FileSizeMax + " KB";
return;
}
strFileName = strFileName + srcFileExtension; //新文件名包括扩展名
_imagePath = _strNewFileFolder + strFileName; //返回上传后的图片路径
//输出
_srcFileName = srcFileName; //上传文件原文件名
_srcFileExtension = srcFileExtension; //扩展名
_strFileName = strFileName; //新文件名
_strFileType = strFileType; //文件类型
_strFileSize = strFileSize; //文件大小 单位 KB
//判断是否为图片
bool IsImg = true;
if (UpLoadFile.PostedFile.ContentType.IndexOf("image") < 0)
...{
IsImg = false;
}
if (IsImg == false)
...{
UpLoadFile.PostedFile.SaveAs(_strFileFolder + strFileName); //非图片文件上传
}
else
...{
//加水印并上传
if (_IsWatermark == true)
...{
System.Drawing.Image image;
if (strFileType == "image/bmp") //bmp图片格式
image = System.Drawing.Bitmap.FromStream(UpLoadFile.PostedFile.InputStream);
else
image = System.Drawing.Image.FromStream(UpLoadFile.PostedFile.InputStream);
System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(image);
if (_WatemarkType == "txt") //文字水印
...{
//将图片绘制到graphics中
g.DrawImage(image, 0, 0, image.Width, image.Height);
//设置文字的属性
System.Drawing.Font f = new System.Drawing.Font(_WatemarkFont, _WatemarkFontSize, System.Drawing.GraphicsUnit.Pixel);
//判断图片的大小,如果图片过小,不写文字
if (image.Width < 200)
//在此设定在图片上所加的文字
_WatemarkText = "";
//写的文字的起始位置,x,y坐标
_WatemarkPosX = 5;
_WatemarkPosY = 5;
//设置字体的颜色
System.Drawing.Brush b = new System.Drawing.SolidBrush(System.Drawing.ColorTranslator.FromHtml(_WatemarkTextColor));
System.Drawing.StringFormat fm = new System.Drawing.StringFormat();
//水印放置左上角
if (_WatemarkPos == 1)
...{
fm.Alignment = System.Drawing.StringAlignment.Near;
fm.LineAlignment = System.Drawing.StringAlignment.Near;
}
//水平居中垂直顶部
if (_WatemarkPos == 2)
...{
fm.Alignment = System.Drawing.StringAlignment.Center;
fm.LineAlignment = System.Drawing.StringAlignment.Near;
}
//右上角
if (_WatemarkPos == 3)
...{
fm.Alignment = System.Drawing.StringAlignment.Far;
fm.LineAlignment = System.Drawing.StringAlignment.Near;
}
//垂直居中水平靠左
if (_WatemarkPos == 4)
...{
fm.Alignment = System.Drawing.StringAlignment.Near;
fm.LineAlignment = System.Drawing.StringAlignment.Center;
}
//居中
if (_WatemarkPos == 5)
...{
fm.Alignment = System.Drawing.StringAlignment.Center;
fm.LineAlignment = System.Drawing.StringAlignment.Center;
}
//垂直居中水平靠右
if (_WatemarkPos == 6)
...{
fm.Alignment = System.Drawing.StringAlignment.Far;
fm.LineAlignment = System.Drawing.StringAlignment.Center;
}
//左下角
if (_WatemarkPos == 7)
...{
fm.Alignment = System.Drawing.StringAlignment.Near;
fm.LineAlignment = System.Drawing.StringAlignment.Far;
}
//水平居中垂直底部
if (_WatemarkPos == 8)
...{
fm.Alignment = System.Drawing.StringAlignment.Center;
fm.LineAlignment = System.Drawing.StringAlignment.Far;
}
//水印放置右下角
if (_WatemarkPos == 9)
...{
fm.Alignment = System.Drawing.StringAlignment.Far;
fm.LineAlignment = System.Drawing.StringAlignment.Far;
}
//写字
g.DrawString(_WatemarkText, f, b, new System.Drawing.RectangleF(0, 0, image.Width, image.Height), fm);
//释放graphics
g.Dispose();
//保存加上水印的图片
image.Save(_strFileFolder + strFileName);
//释放image
image.Dispose();
}
else if (_WatemarkType == "img") //图片水印
...{
System.Drawing.Image copyImage = System.Drawing.Image.FromFile(_WatemarkImg);
//水印放置左上角
if (_WatemarkPos == 1)
...{
_WatemarkPosX = 5;
_WatemarkPosY = 5;
}
//水平居中垂直顶部
if (_WatemarkPos == 2)
...{
_WatemarkPosX = (image.Width - copyImage.Width) / 2;
_WatemarkPosY = 5;
}
//右上角
if (_WatemarkPos == 3)
...{
_WatemarkPosX = image.Width - copyImage.Width - 5;
_WatemarkPosY = 5;
}
//垂直居中水平靠左
if (_WatemarkPos == 4)
...{
_WatemarkPosX = 5;
_WatemarkPosY = (image.Height - copyImage.Height) / 2;
}
//居中
if (_WatemarkPos == 5)
...{
_WatemarkPosX = (image.Width - copyImage.Width) / 2;
_WatemarkPosY = (image.Height - copyImage.Height) / 2;
}
//垂直居中水平靠右
if (_WatemarkPos == 6)
...{
_WatemarkPosX = image.Width - copyImage.Width - 5;
_WatemarkPosY = (image.Height - copyImage.Height) / 2;
}
//左下角
if (_WatemarkPos == 7)
...{
_WatemarkPosX = 5;
_WatemarkPosY = image.Height - copyImage.Height - 5;
}
//水平居中垂直底部
if (_WatemarkPos == 8)
...{
_WatemarkPosX = (image.Width - copyImage.Width) / 2;
_WatemarkPosY = image.Height - copyImage.Height - 5;
}
//水印放置右下角
if (_WatemarkPos == 9)
...{
_WatemarkPosX = image.Width - copyImage.Width - 5;
_WatemarkPosY = image.Height - copyImage.Height - 5;
}
if (copyImage.Height < image.Height && copyImage.Width < image.Width)
...{
//将水印打印到上传图片上去
g.DrawImage(copyImage, new System.Drawing.Rectangle(_WatemarkPosX, _WatemarkPosY, copyImage.Width, copyImage.Height), 0, 0, copyImage.Width, copyImage.Height, System.Drawing.GraphicsUnit.Pixel);
//释放graphics
g.Dispose();
}
//保存图片
image.Save(_strFileFolder + strFileName);
//释放image
image.Dispose();
}
}
else
...{
UpLoadFile.PostedFile.SaveAs(_strFileFolder + strFileName); //不加水印上传
}
//获得图片尺寸
int OldFileHeight, OldFileWidth;
System.Drawing.Image img = System.Drawing.Image.FromStream(UpLoadFile.PostedFile.InputStream);
ōldFileHeight = img.Height;
ōldFileWidth = img.Width;
//创建缩略图
if (_IsThumb == true)
...{
int NewImgHeight, NewImgWidth;
if (OldFileWidth > OldFileHeight)
...{
NewImgWidth = _NewImgpx;
NewImgHeight = (int)(OldFileHeight / (float)OldFileWidth * _NewImgpx);
}
else
...{
NewImgHeight = _NewImgpx;
NewImgWidth = (int)(OldFileWidth / (float)OldFileHeight * _NewImgpx);
}
//如果缩略图的尺寸大于原图尺寸,则用原图片大小
if (NewImgHeight >= OldFileHeight && NewImgWidth >= OldFileWidth)
...{
NewImgHeight = OldFileHeight;
NewImgWidth = OldFileWidth;
}
System.Drawing.Image NewImg = img.GetThumbnailImage(NewImgWidth, NewImgHeight, null, System.IntPtr.Zero);
&
- NET 用户控件 文件上传,并给图片文件加水印(增加文字水印文字设置)
- 上传并加文字水印 上传并加图片水印
- 给上传的图片增加文字水印
- ASP.NET图片上传,加水印文字和水印图片!
- java给图片加水印,文字水印
- 给图片加文字水印
- Asp.Net文件上传【包括上传原图,图片水印图,文字水印图,缩略图】
- .NET上传图片加文字和水印图片源码
- IOS给图片增加水印(图片、文字)
- 上传图片并给图片添加文字水印
- Java 给图片增加 水印图片 水印文字 缩放图片
- 图片加文字水印
- 图片加水印文字
- C# asp.net上传图片加水印文字(个人心得)
- Java 给图片增加 水印图片 水印文字
- PHP给图片加文字水印和图片水印
- java给图片加水印和文字
- android 给图片加文字水印
- 关于单元测试中的部署目录
- Windows下对游戏杆编程
- C#中Delegate浅析与思考
- struts2 配置tiles出錯
- SQL Server数据库开发的二十一条军规
- NET 用户控件 文件上传,并给图片文件加水印(增加文字水印文字设置)
- apache+Tomcat负载平衡设置详解
- 用OLE操作Excel资料
- XmlTextWriter类可以把XML写入一个流、文件或TextWriter对象中
- vs2005环境,fstream不支持中文路径的问题
- indy Socket 编程
- 现代女性
- VC界面(停靠窗口) (转载)
- C#面试题