亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

C#上傳并保存圖片、加水印、生成縮略圖

2019-11-11 06:20:02
字體:
來源:轉載
供稿:網友

伴隨移動設備地普及,處理圖片、視頻等需求也變得越來越基礎,這里介紹的是圖片的存儲。 上傳圖片必須使用form表單提交的方式,我只知道這一種方法,如果大家知道其他方法的話請留言。 保存圖片、加水印和生成縮略圖這三種功能最好各自放在單獨的方法中,盡量降低耦合度,提高代碼復用程度,除此之外我們平常寫代碼是也要盡量做到方法功能的唯一性。

前臺代碼:

<form method="POST" enctype="mult后臺代碼:

PRivate string UploadImage(HttpContext context){ try { System.IO.Stream stream = context.Request.Files["icon"].InputStream; //返回的圖片路徑可以存儲在數據庫中 string imageUrl = SaveImage(stream, "Icon", "蟈蟈"); string thumbnailImageUrl = SaveThumbnailImage(stream, "Icon"); string thumbnailImageUrlWithWatermark = SaveThumbnailImage(ConfigurationManager.AppSettings["AttachmentsDirectory"] + imageUrl, "Icon"); return "上傳成功!"; } catch (Exception ex) { return "上傳失敗!"; }}private string SaveImage(Stream stream, string folderName, string waterMark){ try { string fileName = Guid.NewGuid() + ".jpg"; string path = ConfigurationManager.AppSettings["AttachmentsDirectory"]; path = Path.Combine(path, folderName + "http://" + DateTime.Now.Year + "http://" + DateTime.Now.Month + "http://" + DateTime.Now.Day + "http://"); string imageUrl = "/" + folderName + "/" + DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day + "/"; if (!string.IsNullOrEmpty(waterMark)) { Image imgSource = Image.FromStream(stream); AddWatermarkAndSave(path, fileName, waterMark, imgSource, imgSource.Height - 300, 10, Color.Red, new Font("宋體", 40)); } else { byte[] buffer = new byte[stream.Length]; stream.Read(buffer, 0, buffer.Length); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } System.IO.FileStream fs = new System.IO.FileStream(path + fileName, System.IO.FileMode.OpenOrCreate, System.IO.Fileaccess.Write); fs.Write(buffer, 0, buffer.Length); fs.Flush(); fs.Close(); } return imageUrl + fileName; } catch (Exception ex) { return ""; }}private string SaveThumbnailImage(Stream stream, string folderName){ try { string fileName = Guid.NewGuid() + ".jpg"; string path = ConfigurationManager.AppSettings["AttachmentsDirectory"]; path = Path.Combine(path, folderName + "http://" + DateTime.Now.Year + "http://" + DateTime.Now.Month + "http://" + DateTime.Now.Day + "http://"); string imageUrl = "/" + folderName + "/" + DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day + "/"; System.Drawing.Image.GetThumbnailImageAbort myCallback = new System.Drawing.Image.GetThumbnailImageAbort(GetFalse); //數據源來自Stream Image image = System.Drawing.Bitmap.FromStream(stream); System.Drawing.Image thumbnailImage = image.GetThumbnailImage(64, 64, myCallback, IntPtr.Zero); thumbnailImage.Save(path + fileName); thumbnailImage.Dispose(); return imageUrl + fileName; } catch (Exception ex) { return ""; }}private string SaveThumbnailImage(string originalFileName, string folderName){ try { string fileName = Guid.NewGuid() + ".jpg"; string path = ConfigurationManager.AppSettings["AttachmentsDirectory"]; path = Path.Combine(path, folderName + "http://" + DateTime.Now.Year + "http://" + DateTime.Now.Month + "http://" + DateTime.Now.Day + "http://"); string imageUrl = "/" + folderName + "/" + DateTime.Now.Year + "/" + DateTime.Now.Month + "/" + DateTime.Now.Day + "/"; System.Drawing.Image.GetThumbnailImageAbort myCallback = new System.Drawing.Image.GetThumbnailImageAbort(GetFalse); //數據源來自File Image image = System.Drawing.Bitmap.FromFile(originalFileName); System.Drawing.Image thumbnailImage = image.GetThumbnailImage(64, 64, myCallback, IntPtr.Zero); thumbnailImage.Save(path + fileName); thumbnailImage.Dispose(); return imageUrl + fileName; } catch (Exception ex) { return ""; }}private bool GetFalse(){ return false;}/// <summary>/// 圖片加文字水印/// </summary>/// <param name="fileName"> </param>/// <param name="text">水印文字,如果是多行用分號隔開</param>/// <param name="img">圖片</param>/// <param name="paddingTop">上邊距</param>/// <param name="paddingLeft">左邊距</param>/// <param name="textColor">文字顏色</param>/// <param name="textFont">字體</param>/// <param name="path">保存地址</param>/// <returns></returns>private bool AddWatermarkAndSave(string path, string fileName, string text, Image img, int paddingTop, int paddingLeft, Color textColor, Font textFont){ text = text + ";" + "當前時間:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } textFont = new Font("宋體", 19); Bitmap bm = new Bitmap(img); System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bm); System.Drawing.Brush b = new SolidBrush(textColor); string[] str = text.Split(';'); for (int i = 0; i < str.Length; i++) g.DrawString(str[i], textFont, b, paddingLeft, paddingTop + 33 * i); g.Dispose(); bm.Save(path + fileName, ImageFormat.Jpeg); bm.Dispose(); return true;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲国产精品久久久久| 亚洲国产欧美精品| 欧美亚洲日本黄色| 成人午夜激情免费视频| 国产在线播放91| 57pao成人国产永久免费| 国产精品av在线播放| 欧美在线一区二区视频| 97国产精品人人爽人人做| 久久久精品2019中文字幕神马| 亚洲美女精品久久| 国产精品小说在线| 国产香蕉一区二区三区在线视频| 77777少妇光屁股久久一区| 91精品国产综合久久香蕉的用户体验| 亚洲男人的天堂在线| 欧美日韩成人在线视频| 国产一区二区欧美日韩| 国产精品一区专区欧美日韩| 疯狂欧美牲乱大交777| 亚洲男人7777| 91精品国产综合久久香蕉| 久久国产天堂福利天堂| 国产一区二区欧美日韩| 久久久999精品免费| 国产精品777| 国产精品扒开腿做爽爽爽的视频| 成人国产精品日本在线| 欧美性色19p| 国产va免费精品高清在线| 日韩欧美大尺度| 日韩成人性视频| 欧美成人免费va影院高清| 亚洲一级黄色av| 久久精品国产欧美亚洲人人爽| 久久久久久久电影一区| 自拍视频国产精品| 亚洲精品一区二三区不卡| 色香阁99久久精品久久久| 中国人与牲禽动交精品| 国产精品尤物福利片在线观看| 亚洲视频免费一区| 久久激情五月丁香伊人| 久久久欧美精品| 国产精品福利在线| 久久国产视频网站| 欧美在线亚洲一区| 国产精品白嫩初高中害羞小美女| 91产国在线观看动作片喷水| 亚洲性视频网址| 亚洲精品有码在线| 九九热99久久久国产盗摄| 96sao精品视频在线观看| 午夜精品一区二区三区在线视频| 日韩高清人体午夜| 久久久久久高潮国产精品视| 在线成人免费网站| 高清欧美性猛交xxxx黑人猛交| 国产精品久久久亚洲| 俺去了亚洲欧美日韩| 亚洲视频视频在线| 国产精品综合不卡av| 亚洲精品一区二三区不卡| 在线亚洲国产精品网| 久久人人爽国产| 欧美激情亚洲国产| 97碰碰碰免费色视频| 日韩精品高清在线观看| 国产不卡av在线| 亚洲国产精久久久久久久| 国产精品亚洲一区二区三区| 久久夜色精品亚洲噜噜国产mv| 成人网欧美在线视频| 亚洲国产精品成人av| 亚洲免费成人av电影| 国产视频精品在线| 神马久久桃色视频| 国产成人一区二区三区电影| 精品国模在线视频| 狠狠久久亚洲欧美专区| 亚洲精品中文字| 国产suv精品一区二区| 日韩视频在线一区| 欧美激情影音先锋| 2018中文字幕一区二区三区| 久久夜色撩人精品| 久久影视电视剧免费网站| 亚洲日韩欧美视频| 日韩一区二区三区国产| 亚洲欧洲偷拍精品| 欧美黑人性猛交| 96sao精品视频在线观看| 青青草成人在线| 日韩三级影视基地| www日韩中文字幕在线看| 国产精品久久久久久亚洲影视| 超薄丝袜一区二区| 日韩高清人体午夜| 日韩在线播放一区| 最近2019中文字幕mv免费看| 日韩精品在线第一页| 亚洲激情在线观看| 久久精品视频在线| 亚洲在线www| 精品久久在线播放| 孩xxxx性bbbb欧美| 亚洲欧美日韩网| 久久精品99国产精品酒店日本| 日本一本a高清免费不卡| 日韩激情av在线免费观看| 国产91精品最新在线播放| 欧美性videos高清精品| 久久99青青精品免费观看| 色哟哟入口国产精品| 欧美精品国产精品日韩精品| 国产精品久久久久久av福利| 国产91精品不卡视频| 亚洲欧美综合精品久久成人| 欧美成人免费视频| 国外成人在线视频| 日韩av123| 亚洲男人天天操| 国产精品久久久久不卡| 日韩最新在线视频| 久久97久久97精品免视看| 欧美专区福利在线| 亚洲人成电影在线观看天堂色| 欧美成人自拍视频| 伊人久久久久久久久久久久久| 亚洲男人天堂2023| 91精品国产777在线观看| 亚洲男人天堂2023| 色综合伊人色综合网站| 久久久www成人免费精品| 欧美在线视频在线播放完整版免费观看| 91中文字幕在线观看| 日韩高清电影免费观看完整版| 91久久精品美女高潮| 欧美大尺度激情区在线播放| 青青久久av北条麻妃海外网| 亚洲精品v欧美精品v日韩精品| 亚洲女同精品视频| 青青久久av北条麻妃海外网| 国产精品久久999| 亚洲精品午夜精品| 久久久久国产精品一区| 日韩精品在线免费观看| 亚洲男人天堂九九视频| 欧美日韩在线看| 国产精品久久久av久久久| 91精品国产自产在线| 一本一道久久a久久精品逆3p| 欧美日韩在线观看视频小说| 亚洲综合日韩中文字幕v在线| 欧美日韩国产麻豆| 久久男人av资源网站| 乱亲女秽乱长久久久| 在线激情影院一区| 色婷婷综合成人| 亚洲欧洲国产精品| 久久久久久久久久久av| 国产成人精品综合| 亚洲香蕉成视频在线观看| 欧美日韩在线视频一区|