| 发表于:2007-03-06 09:07:323楼 得分:0 |
#region 控件参数 //用于保存上传的文件 public string filename { set { session[ "filename "] = value; string strurl = httpcontext.current.request.url.pathandquery; strurl = strurl.substring(0, strurl.lastindexof( "/ ")+1); if (strurl.length == 7) { strurl = httpcontext.current.request.url.pathandquery; } this.imgview.src = strurl + uploadpath + value; } get { return (string)session[ "filename "]; } } //图片保存相对路径 private string m_uplaodpath; public string uploadpath { set { m_uplaodpath = value; } get { return m_uplaodpath; } } //用于判断图片是否上传成功 private string m_strissuccess; public string issuccess { get { return m_strissuccess; } set { m_strissuccess = value; } } //预览图片大小设置 private int m_intviewpicheight = 150; public int viewpicheight { get { return m_intviewpicheight; } set { m_intviewpicheight = value; } } private int m_intviewpicwidth=120; public int viewpicwidth { get { return m_intviewpicwidth; } set { m_intviewpicwidth = value; } } //上传图片最大不能超过 private int m_intimgmaxsize = 15; public int imgmaxsize { get { return m_intimgmaxsize; } set { m_intimgmaxsize = value; } } #endregion #region 生成缩略图,添加水印 /// <summary> /// 生成缩略图,添加文字/图片水印 /// </summary> /// <param name= "txtoriginalpicturepath "> 原图片路径 </param> /// <param name= "txtsmallpicturepath "> 缩略图路径 </param> /// <param name= "intwidth "> 缩略图宽度 </param> /// <param name= "intheight "> 缩略图高度 </param> /// <param name= "strmode "> 缩略方式( 'h '--指定高,宽按比例, 'w '--指定宽,高按比例, 'hw '--按指定的宽高缩略) </param> /// <param name= "strsignetwordcontent "> 添加文字水印(文字内容) </param> /// <param name= "strsignetpicturepath "> 添加图片水印(图片路径) </param> public void makesmallpicture(string txtoriginalpicturepath, string txtsmallpicturepath, int intwidth, int intheight, string strmode, string strsignetwordcontent, string strsignetpicturepath) { system.drawing.image imgoriginalimage = system.drawing.image.fromfile(txtoriginalpicturepath); int inttowidth = intwidth; int inttoheight = intheight; int x = 0; int y = 0; int intoriginalwidth = imgoriginalimage.width; int intoriginalheight = imgoriginalimage.height; switch (strmode) { case "hw "://指定高宽缩放(可能变形) break; case "w "://指定宽,高按比例 inttoheight = imgoriginalimage.height * intwidth / imgoriginalimage.width; break; case "h "://指定高,宽按比例 inttowidth = imgoriginalimage.width * intheight / imgoriginalimage.height; break; case "cut "://指定高宽裁减(不变形) if ((double)imgoriginalimage.width / (double)imgoriginalimage.height > (double)inttowidth / (double)inttoheight) { intoriginalheight = imgoriginalimage.height; intoriginalwidth = imgoriginalimage.height * inttowidth / inttoheight; y = 0; x = (imgoriginalimage.width - intoriginalwidth) / 2; } else { intoriginalwidth = imgoriginalimage.width; intoriginalheight = imgoriginalimage.width * intheight / inttowidth; x = 0; y = (imgoriginalimage.height - intoriginalheight) / 2; } break; default: break; } //新建一个bmp图片 system.drawing.image bitmap = new system.drawing.bitmap(inttowidth, inttoheight); //新建一个画板 graphics g = system.drawing.graphics.fromimage(bitmap); //设置高质量插值法 g.interpolationmode = system.drawing.drawing2d.interpolationmode.high; //设置高质量,低速度呈现平滑程度 g.smoothingmode = system.drawing.drawing2d.smoothingmode.highquality; //清空画布并以透明背景色填充 g.clear(color.transparent); //在指定位置并且按指定大小绘制原图片的指定部分 g.drawimage(imgoriginalimage, new rectangle(0, 0, inttowidth, inttoheight), new rectangle(x, y, intoriginalwidth, intoriginalheight), graphicsunit.pixel); //文字水印 if (!string.isnullorempty(strsignetwordcontent)) { system.drawing.font f = new font( "宋体 ", 14); system.drawing.brush b = new solidbrush(color.white); g.drawstring(strsignetwordcontent, f, b, (convert.toint32(inttowidth / 2) - 20), convert.toint32(intheight / 2)); } //图片水印 if (!string.isnullorempty(strsignetpicturepath)) { system.drawing.image copyimage = system.drawing.image.fromfile(strsignetpicturepath); g.drawimage(copyimage, new rectangle(convert.toint32((inttowidth - copyimage.width) / 2), convert.toint32((inttoheight - copyimage.height) / 2), copyimage.width, copyimage.height), 0, 0, copyimage.width, copyimage.height, graphicsunit.pixel); copyimage.dispose(); } try { //以jpg格式保存缩略图 bitmap.save(txtsmallpicturepath, system.drawing.imaging.imageformat.jpeg); } catch (system.exception e) { throw e; } finally { imgoriginalimage.dispose(); bitmap.dispose(); g.dispose(); } } /// <summary> /// 生成缩略图,添加文字/图片水印 /// </summary> /// <param name= "txtoriginalpicturepath "> 原图片路径 </param> /// <param name= "txtsmallpicturepath "> 缩略图路径 </param> /// <param name= "intwidth "> 缩略图宽度 </param> /// <param name= "intheight "> 缩略图高度 </param> /// <param name= "strmode "> 缩略方式( 'h '--指定高,宽按比例, 'w '--指定宽,高按比例, 'hw '--按指定的宽高缩略) </param> public void makesmallpicture(string txtoriginalpicturepath, string txtsmallpicturepath, int intwidth, int intheight, string strmode) { makesmallpicture(txtoriginalpicturepath, txtsmallpicturepath, intwidth, intheight, strmode, " ", " "); } /// <summary> /// 生成缩略图,添加文字/图片水印 /// </summary> /// <param name= "txtoriginalpicturepath "> 原图片路径 </param> /// <param name= "txtsmallpicturepath "> 缩略图路径 </param> /// <param name= "intwidth "> 缩略图宽度 </param> /// <param name= "intheight "> 缩略图高度 </param> public void makesmallpicture(string txtoriginalpicturepath, string txtsmallpicturepath, int intwidth, int intheight) { makesmallpicture(txtoriginalpicturepath, txtsmallpicturepath, intwidth, intheight, "hw ", " ", " "); } #endregion } | | |
|