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

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

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

2019-11-14 08:59:59
字體:
來源:轉載
供稿:網友

伴隨移動設備地普及,處理圖片、視頻等需求也變得越來越基礎,這里介紹的是圖片的存儲。 上傳圖片必須使用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
亚洲国产精品大全| 一区二区三区无码高清视频| 成人做爰www免费看视频网站| 97人洗澡人人免费公开视频碰碰碰| 狠狠爱在线视频一区| 91精品综合久久久久久五月天| 日韩欧美主播在线| 亚洲精品不卡在线| 国产精品久久久久国产a级| 91精品国产99| 亚洲欧洲在线播放| 国产精品揄拍一区二区| 国产精品午夜一区二区欲梦| 亚洲综合在线中文字幕| 亚洲人成网7777777国产| 欧美日本在线视频中文字字幕| 97视频免费在线观看| 亚洲综合成人婷婷小说| 欧美大成色www永久网站婷| 亚洲国产精品va在线看黑人| 欧美天天综合色影久久精品| 欧美在线亚洲在线| 成人在线中文字幕| 亚洲高清免费观看高清完整版| 久久久999精品视频| 成人在线中文字幕| 亚洲天堂一区二区三区| 91久久久久久久久| 国产免费一区二区三区香蕉精| 欧美成人激情图片网| 亚洲欧美激情另类校园| 91极品视频在线| 亚洲**2019国产| 国产精品91在线| 国内精品久久久久影院优| 国产美女91呻吟求| 精品久久久久久中文字幕大豆网| 亚洲无限av看| 色偷偷偷综合中文字幕;dd| 92看片淫黄大片看国产片| 欧美日本国产在线| 国产精品精品久久久| 最近2019年中文视频免费在线观看| 亚洲国产精彩中文乱码av| 欧美网站在线观看| 日韩电视剧免费观看网站| 中文字幕欧美日韩精品| 日本欧美精品在线| 精品国产一区二区三区四区在线观看| 一区二区三区www| 亚洲精品国产精品国自产在线| 成人写真视频福利网| 韩剧1988免费观看全集| 日韩国产精品视频| 日韩高清欧美高清| 国产亚洲欧洲在线| 日日狠狠久久偷偷四色综合免费| 欧美丰满片xxx777| 国产一区二区香蕉| 亚洲免费伊人电影在线观看av| 日韩欧美在线第一页| 在线成人免费网站| 欧美日韩国产精品一区二区不卡中文| 久久久久久久一区二区三区| 91高潮精品免费porn| 中文字幕在线看视频国产欧美| 亚洲xxx自由成熟| 黑人巨大精品欧美一区二区一视频| 97精品国产aⅴ7777| 国产一区二区美女视频| 国产a∨精品一区二区三区不卡| 久久国产精品网站| 欧美老肥婆性猛交视频| 精品国内自产拍在线观看| 亚洲日韩中文字幕| 亚洲最新av在线| 国产成人精品最新| 国产中文字幕91| 欧美三级欧美成人高清www| 成人福利视频网| 国产精品av网站| 欧美成人h版在线观看| 欧美黑人性生活视频| 久久久女人电视剧免费播放下载| 久热精品在线视频| 国产成人激情视频| 久久久精品免费| 国产亚洲精品久久久久久777| 在线成人激情黄色| 精品成人国产在线观看男人呻吟| 亚洲国产精品yw在线观看| 日产精品久久久一区二区福利| 人人爽久久涩噜噜噜网站| 久久久久久久久中文字幕| 欧美伊久线香蕉线新在线| 久久影视电视剧免费网站清宫辞电视| 伊人成人开心激情综合网| 中文日韩电影网站| 久久久伊人欧美| 国产精品扒开腿做爽爽爽视频| 4444欧美成人kkkk| 国产丝袜高跟一区| 精品久久久精品| 国产精品欧美日韩| 日韩欧美亚洲成人| 久久中文精品视频| 搡老女人一区二区三区视频tv| 久久久精品视频在线观看| 日韩欧美国产黄色| 91精品在线国产| 高清一区二区三区日本久| 亚洲影院污污.| 精品福利在线看| 欧美高清视频免费观看| 亚洲福利在线看| 精品一区二区三区电影| 久久影视电视剧免费网站清宫辞电视| 国产一区二区黄| 中文字幕亚洲国产| 欧美另类精品xxxx孕妇| 日韩国产精品亚洲а∨天堂免| 国产精品99久久久久久久久久久久| 欧美裸体男粗大视频在线观看| 欧美日韩国产丝袜美女| 欧美一级视频一区二区| 亚洲伊人一本大道中文字幕| 欧美国产日韩视频| 最近2019好看的中文字幕免费| 一本色道久久88精品综合| 日韩中文娱乐网| 国产日韩欧美另类| 国内精品一区二区三区| 97超碰国产精品女人人人爽| 久久精品一偷一偷国产| 久久香蕉国产线看观看网| 国产精品久久久一区| 一区二区在线免费视频| 日韩精品一二三四区| 91av在线看| 91美女片黄在线观看游戏| 久久久精品视频成人| 狠狠久久亚洲欧美专区| 欧美激情中文字幕乱码免费| 欧美与黑人午夜性猛交久久久| 精品国产91乱高清在线观看| 久久久久久综合网天天| 欧美性20hd另类| 亚洲性视频网站| 青青草精品毛片| 亚洲视频在线免费看| 亚洲午夜女主播在线直播| 久久电影一区二区| 国产精品美腿一区在线看| 日韩中文字幕欧美| 爱福利视频一区| 国产精品第七十二页| 日韩欧中文字幕| 成人中文字幕+乱码+中文字幕| 成人福利免费观看| 日韩av电影院| 国产精品免费久久久久久| 久久精品视频中文字幕| 成人羞羞国产免费| 久久91精品国产91久久久|