开发者社区> 橘子红了呐> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

asp.net 图片 上传 打水印 高质量缩略图

简介:
+关注继续查看
数据库:proimgs/abc1.jpg|||| 

string[] arra = dr["picture"].ToString().Split('|');//取出图片  

string strName = arr[0].Substring(8);   "proimgs/"从这八个字符起  输出:abc1.jpg 

string newname = strName.Substring(0, strName.LastIndexOf("."));   输出:abc1 

string Pimg = arra[0].Substring(0, arra[0].LastIndexOf(".")) + "P" + arra[0].Substring(arra[0].LastIndexOf("."));   输出:proimgs/abc1P.jpg 

使用FileUpload控件在获取文件名的时候,尽量使用Path.GetFileName(UpLoadFile.PostedFile.FileName)这样的方法可以使任何浏览器下面都能得到正确的文件名,而不会包含路径. 

string picture = "";
string strUpath = Server.MapPath("~/proimgs/");
if (this.FileUpload1.FileName.ToString() != "")
{
string strName1 = this.FileUpload1.FileName.ToString();  //上传的文件名
int strSize1 = Convert.ToInt32(this.FileUpload1.PostedFile.ContentLength.ToString()); //上传文件大小 string strType1 = this.FileUpload1.PostedFile.ContentType.ToString();//上传文件类型 if (strType1 == "image/pjpeg" || strType1 == "image/bmp" || strType1 == "image/gif") //判断是否为图片类型 { if (strSize1 < 500000) { this.FileUpload1.SaveAs(strUpath + proFname + strName1.Substring(strName1.LastIndexOf(".")));//保存文件到服务器里 pp.imgCopy(strUpath, proFname, strName1.Substring(strName1.LastIndexOf(".")), 1);//图片打水印 pp.imgSmoClass(strUpath, proFname, strName1.Substring(strName1.LastIndexOf(".")));//分类缩略图 pp.imgSmoPro(strUpath, proFname, strName1.Substring(strName1.LastIndexOf(".")), 1);//产品缩略图 } else { Response.Write("<javascript langueage='javascript'>alert('上传文件过大!');history.go(-1);</script>"); } } else { Response.Write("<javascript langueage='javascript'>alert('上传文件类型不为图片!');history.go(-1);</script>"); } picture += "proimgs/" + proFname + "1" + strName1.Substring(strName1.LastIndexOf(".")) + "|"; } else { picture += "|"; } if (this.FileUpload2.FileName.ToString() != "") { string strName2 = this.FileUpload2.FileName.ToString(); //上传的文件名 int strSize2 = Convert.ToInt32(this.FileUpload2.PostedFile.ContentLength.ToString()); //上传文件大小 string strType2 = this.FileUpload2.PostedFile.ContentType.ToString();//上传文件类型 if (strType2 == "image/pjpeg" || strType2 == "image/bmp" || strType2 == "image/gif") //判断是否为图片类型 { if (strSize2 < 500000) { this.FileUpload2.SaveAs(strUpath + proFname + strName2.Substring(strName2.LastIndexOf(".")));//保存文件到服务器里 pp.imgCopy(strUpath, proFname, strName2.Substring(strName2.LastIndexOf(".")), 2); pp.imgSmoPro(strUpath, proFname, strName2.Substring(strName2.LastIndexOf(".")), 2);//缩略图 } else { Response.Write("<javascript langueage='javascript'>alert('上传文件过大!');history.go(-1);</script>"); } } else { Response.Write("<javascript langueage='javascript'>alert('上传文件类型不为图片!');history.go(-1);</script>"); } picture += "proimgs/" + proFname + "2" + strName2.Substring(strName2.LastIndexOf(".")) + "|"; } else { picture += "|"; }

 

//图片加水印,strPath:路径;strName:文件名;strType文件类型,i第几图片
public static void imgCopy(string strPath,string strName,string strType,int i)
{
try
{
//加图片水印
string path = strPath + strName + strType;
System.Drawing.Image image = System.Drawing.Image.FromFile(path);
System.Drawing.Image copyImage = System.Drawing.Image.FromFile(System.Web.HttpContext.Current.Server.MapPath("~/images/slogo.png"));// + "/slogo.png");
Graphics g = Graphics.FromImage(image);
g.DrawImage(copyImage, new Rectangle(image.Width - copyImage.Width, image.Height - copyImage.Height, copyImage.Width, copyImage.Height), 0, 0, copyImage.Width, copyImage.Height, GraphicsUnit.Pixel);
g.Dispose();
//保存加水印过后的图片,删除原始图片
string newPath = strPath + strName + i + strType; //+ extension;//
image.Save(newPath);
image.Dispose();
//string strDelpath = strPath + strName;
if (File.Exists(path))//删除图片
{
File.Delete(path);
}
}
catch(Exception ex)
{
throw new Exception(ex.Message);
}
}


//缩略图 
http://www.cnblogs.com/zengxiangzhan/archive/2009/09/17/1568535.html



    本文转自曾祥展博客园博客,原文链接:http://www.cnblogs.com/zengxiangzhan/archive/2009/09/17/1568561.html,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
asp.net 生成缩略图、为图片添加文字水印、图片水印等功能
最近挺嫌的荒,不知道写点什么好,就在网上找了个类似的例子,自己重新写了一遍,稍微改了一下。希望对大家有用 实现了生成缩略图、为图片添加文字水印、图片水印等功能 源代码打包下载:http://files.
1120 0
asp.net 图片批量上传预览,在Silverlight页面中读取并滚动显示
Silverlight动态读取图片并滚动显示 asp.net页面中图片上传并预览   ...
520 0
asp.net显示高清缩略图
如题:   添加命名空间如下: using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; using System.
920 0
asp.net 使用FileUpload控件上传并显示图片
在项目中经常会遇到上传图片,在点击保存按钮向数据库提交数据之前,让图片显示在Image控件中,方法如下: ...
633 0
.net mvc中上传图片生成缩略图
        #region CreateThumbnail         ///         /// 生成缩略图         ///         /// 上传的HttpPostedFile或图片物理路径         /// 上传文件夹相对路径         /// 后缀(如:.
838 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载