C#生成高清缩略图

jopen 11年前

    /// <summary>           /// 为图片生成缩略图             /// </summary>           /// <param name="phyPath">原图片的路径</param>           /// <param name="width">缩略图宽</param>           /// <param name="height">缩略图高</param>           /// <returns></returns>           public System.Drawing.Image GetThumbnail(System.Drawing.Image image, int width, int height)           {               Bitmap bmp = new Bitmap(width, height);               //从Bitmap创建一个System.Drawing.Graphics               System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(bmp);               //设置                gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;               //下面这个也设成高质量               gr.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;               //下面这个设成High               gr.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;               //把原始图像绘制成上面所设置宽高的缩小图               System.Drawing.Rectangle rectDestination = new System.Drawing.Rectangle(0, 0, width, height);                        gr.DrawImage(image, rectDestination, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);               return bmp;           }  

调用方法

    HttpPostedFile file = photoFile.PostedFile;                if (!file.ContentType.Contains("image"))                {        return "照片格式不合法";                }                string ext = Path.GetExtension(file.FileName).ToLower();                if (ext != ".jpg" && ext != ".gif" && ext != ".png" && ext != ".jpeg")                {        return "请您上传jpg、gif、png图片";                }                if (file.ContentLength > 5 * 1024 * 1024)                {        return "请您上传512字节内的图片";                }                string newName = Guid.NewGuid().ToString();                string tempPath = "upload/";                string img = tempPath + newName + ext;                string filePath = Server.MapPath(img);                if (!Directory.Exists(tempPath))                {                    Directory.CreateDirectory(tempPath);                }                using (System.Drawing.Image originalImage = System.Drawing.Image.FromStream(file.InputStream))                {                    GetThumbnail(originalImage, 504, 374).Save(filePath);                }