asp.net 图片 上传 打水印 高质量缩略图
生活随笔
收集整理的這篇文章主要介紹了
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 += "|"; }
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 图片 上传 打水印 高质量缩略图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Hadoop HDFS概念学习系列之sh
- 下一篇: 老板的两分钱