获取图片缩略图
?protected void btnUpLoadFile_Click(object sender, EventArgs e)
??? {
??????? //判斷上傳文件格式是否有效
??????? if (UpLoadFile.PostedFile.ContentType.ToLower().IndexOf("image") < 0)
??????? {
??????????? string strAlert = "<script language = 'javascript'>alert('文件格式錯誤');</script>";
??????????? Response.Write(strAlert);
??????????? return;
??????? }
??????? //生成原圖
??????? Stream oStream = UpLoadFile.PostedFile.InputStream;
??????? System.Drawing.Image oImage = System.Drawing.Image.FromStream(oStream);
??????? //獲取原圖的Height和Width
??????? int oHeight = oImage.Height;
??????? int oWidth = oImage.Width;
??????? //設置初始時縮略圖的Height和Width
??????? int tHeight = 100;
??????? int tWidth = 100;
??????? //按照原始比例計算所略圖的Height和Width
??????? if (oWidth > oHeight)
??????? {
??????????? tHeight = (int)Math.Floor(Convert.ToDouble(oHeight)/Convert.ToDouble(oWidth)*tWidth);
??????? }
??????? else
??????? {
??????????? tWidth = (int)Math.Floor(Convert.ToDouble(oWidth)/Convert.ToDouble(oHeight)*Convert.ToDouble(tHeight));
??????? }
??????? //生成縮略圖
??????? Bitmap tImage = new Bitmap(tWidth, tHeight);
??????? Graphics graphic = Graphics.FromImage(tImage);
??????? graphic.InterpolationMode = InterpolationMode.High;//設置高質量插值法
??????? graphic.SmoothingMode = SmoothingMode.HighQuality; ;//設置高質量,低速度呈現平滑程度
??????? graphic.Clear(Color.Transparent);
??????? graphic.DrawImage(oImage, new Rectangle(0, 0, tWidth, tHeight), new Rectangle(0, 0, oWidth, oHeight),
????????????????????????? GraphicsUnit.Pixel);
??????? string oFullName = Server.MapPath(".") + "/" + "o" + DateTime.Now.ToShortDateString().Replace("-", "")
??????????????????????????? + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString()
??????????????????????????? + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + ".jpg"; //保存原圖的物理路徑
??????? string tFullName = Server.MapPath(".") + "/" + "t" + DateTime.Now.ToShortDateString().Replace("-", "")
?????????????????????????? + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString()
?????????????????????????? + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + ".jpg";//縮略圖的物理路徑
??????? try
??????? {
??????????? oImage.Save(oFullName, System.Drawing.Imaging.ImageFormat.Jpeg);
??????????? tImage.Save(tFullName, System.Drawing.Imaging.ImageFormat.Jpeg);
??????? }
??????? catch(Exception ex)
??????? {
??????????? string strEx = "<script language = 'javascript'>alert(" + ex.ToString() + ")</script>";
??????????? Response.Write(strEx);
??????? }
??????? finally
??????? {
??????????? oImage.Dispose();
??????????? tImage.Dispose();
??????????? graphic.Dispose();
??????? }
??? }
轉載于:https://www.cnblogs.com/zijinguang/archive/2007/09/05/883214.html
總結
- 上一篇: 在pocket pc 2003上播放声音
- 下一篇: JS中格式化数据保留两位小数