日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

C# webform上传图片并生成缩略图

發(fā)布時間:2023/11/27 生活经验 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# webform上传图片并生成缩略图 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

其實里面寫的很亂,包括修改文件名什么的都沒有仔細去寫,主要是想記錄下縮略圖生成的幾種方式?,大家明白就好!

  1  void UpImgs()
  2     {
  3         if (FileUpload1.HasFile)
  4         {
  5             string fileContentType = FileUpload1.PostedFile.ContentType;
  6             if (fileContentType == "image/bmp" || fileContentType == "image/gif" || fileContentType == "image/pjpeg")
  7             {
  8                 string name = FileUpload1.PostedFile.FileName; // 客戶端文件路徑
  9 
 10                 FileInfo file = new FileInfo(name);
 11                 //string fileName = CreatFileName(file.Name)+"_"+file.Name; // 文件名稱
 12                 //string fileName_s = "s_" + CreatFileName(file.Name) + "_" + file.Name; // 縮略圖文件名稱
 13 
 14                 string fileName = CreatFileName(file.Name); // 文件名稱
 15                 string fileName_s = "s_" + CreatFileName(file.Name); // 縮略圖文件名稱
 16 
 17 
 18                 string webFilePath = Server.MapPath("../file/" + fileName); // 服務器端文件路徑
 19                 string webFilePath_s = Server.MapPath("../file/" + fileName_s);  // 服務器端縮略圖路徑
 20 
 21 
 22                 string dbname = "~/file/" + fileName;//存放到<a href="http://lib.csdn.net/base/mysql" class='replace_word' title="MySQL知識庫" target='_blank' style='color:#df3434; font-weight:bold;'>數(shù)據(jù)庫</a>里的相對路徑
 23                 string dbnames = "~/file/" + fileName_s;//存放到數(shù)據(jù)庫里的相對路徑
 24 
 25                 if (!File.Exists(webFilePath))
 26                 {
 27                     try
 28                     {
 29                         FileUpload1.SaveAs(webFilePath); // 使用 SaveAs 方法保存文件
 30                         MakeThumbnail(webFilePath, webFilePath_s, 200, 160, "Cut"); // 生成縮略圖方法
 31                         //Label1.Text = "提示:文件“" + fileName + "”成功上傳,并生成“" + fileName_s + "”縮略圖,文件類型為:" + FileUpload1.PostedFile.ContentType + ",文件大小為:" + FileUpload1.PostedFile.ContentLength + "B";
 32                         Label1.Text = "提示:文件“" + dbname + "”成功上傳,并生成“" + dbnames + "”縮略圖,文件類型為:" + FileUpload1.PostedFile.ContentType + ",文件大小為:" + FileUpload1.PostedFile.ContentLength + "B";
 33 
 34 
 35                         File.Delete(webFilePath);//刪除源文件,在這我把源文件刪了,只保留了縮小后的圖片
 36 
 37 
 38 
 39                     }
 40                     catch (Exception ex)
 41                     {
 42                         Label1.Text = "提示:文件上傳失敗,失敗原因:" + ex.Message;
 43 
 44                     }
 45                 }
 46                 else
 47                 {
 48                     Label1.Text = "提示:文件已經(jīng)存在,請重命名后上傳";
 49 
 50                 }
 51             }
 52             else
 53             {
 54                 Label1.Text = "提示:文件類型不符";
 55 
 56             }
 57         }
 58     }
 59     /**//// 
 60 /// 生成縮略圖
 61 /// 
 62 /// 源圖路徑(物理路徑)
 63 /// 縮略圖路徑(物理路徑)
 64 /// 縮略圖寬度
 65 /// 縮略圖高度
 66 /// 生成縮略圖的方式 
 67     public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode)
 68     {
 69         System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath);
 70 
 71         int towidth = width;
 72         int toheight = height;
 73 
 74         int x = 0;
 75         int y = 0;
 76         int ow = originalImage.Width;
 77         int oh = originalImage.Height;
 78 
 79         switch (mode)
 80         {
 81             case "HW"://指定高寬縮放(可能變形) 
 82                 break;
 83             case "W"://指定寬,高按比例 
 84                 toheight = originalImage.Height * width / originalImage.Width;
 85                 break;
 86             case "H"://指定高,寬按比例
 87                 towidth = originalImage.Width * height / originalImage.Height;
 88                 break;
 89             case "Cut"://指定高寬裁減(不變形) 
 90                 if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight)
 91                 {
 92                     oh = originalImage.Height;
 93                     ow = originalImage.Height * towidth / toheight;
 94                     y = 0;
 95                     x = (originalImage.Width - ow) / 2;
 96                 }
 97                 else
 98                 {
 99                     ow = originalImage.Width;
100                     oh = originalImage.Width * height / towidth;
101                     x = 0;
102                     y = (originalImage.Height - oh) / 2;
103                 }
104                 break;
105             default:
106                 break;
107         }
108 
109         //新建一個bmp圖片
110         System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);
111 
112         //新建一個畫板
113         System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);
114 
115         //設置高質(zhì)量插值法
116         g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
117 
118         //設置高質(zhì)量,低速度呈現(xiàn)平滑程度
119         g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
120 
121         //清空畫布并以透明背景色填充
122         g.Clear(System.Drawing.Color.Transparent);
123 
124         //在指定位置并且按指定大小繪制原圖片的指定部分
125         g.DrawImage(originalImage, new System.Drawing.Rectangle(0, 0, towidth, toheight),
126         new System.Drawing.Rectangle(x, y, ow, oh),
127         System.Drawing.GraphicsUnit.Pixel);
128 
129         try
130         {
131             //以jpg格式保存縮略圖
132             bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
133         }
134         catch (System.Exception e)
135         {
136             throw e;
137         }
138         finally
139         {
140             originalImage.Dispose();
141             bitmap.Dispose();
142             g.Dispose();
143         }
144     }
145 
146     string CreatFileName(string fileName)
147     {
148 
149         DateTime now = DateTime.Now;
150 
151         string str =
152 
153             now.Year.ToString() + 
154 
155              now.Month.ToString() + 
156 
157              now.Day.ToString() + 
158 
159              now.Hour.ToString() + 
160 
161              now.Minute.ToString() + 
162 
163              now.Second.ToString() + 
164 
165              fileName;
166 
167         return str;
168 
169     }

?

轉(zhuǎn)載于:https://www.cnblogs.com/felix-wang/p/6255313.html

總結(jié)

以上是生活随笔為你收集整理的C# webform上传图片并生成缩略图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。