上传时生成缩略图

来源:互联网 发布:windows defender开启 编辑:程序博客网 时间:2024/05/17 23:38
/// <summary>        /// 上传时生成缩略图        /// </summary>        /// <param name="_postedFile">上传浏览框</param>        /// <param name="thumbnailPath">缩略图保存路径(相对路径)</param>        /// <param name="width">缩略图宽度</param>        /// <param name="height">缩略图高度</param>        public static void MakeThumbnail(HttpPostedFile _postedFile, string thumbnailPath, int width, int height)        {            System.Drawing.Image originalImage = System.Drawing.Image.FromStream(_postedFile.InputStream);            int towidth = width;            int toheight = height;            int x = 0;            int y = 0;            int ow = originalImage.Width;            int oh = originalImage.Height;                        //新建一个bmp图片            System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);            //新建一个画板            System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);            //设置高质量插值法            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;            //设置高质量,低速度呈现平滑程度            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;            //清空画布并以透明背景色填充            g.Clear(System.Drawing.Color.Transparent);            //在指定位置并且按指定大小绘制原图片的指定部分            g.DrawImage(originalImage, new System.Drawing.Rectangle(0, 0, towidth, toheight),                new System.Drawing.Rectangle(x, y, ow, oh),                System.Drawing.GraphicsUnit.Pixel);            try            {                //保存缩略图                bitmap.Save(HttpContext.Current.Server.MapPath(thumbnailPath));            }            catch (System.Exception e)            {                throw e;            }            finally            {                originalImage.Dispose();                bitmap.Dispose();                g.Dispose();            }        }

0 0