/// <summary> /// 生成图片缩略图 指定文件路径生成 /// </summary> public static void SaveImage(String fullName, string fileName, int w, int h) { FileStream fs = new FileStream(fullName, FileMode.Open); System.Drawing.Image image = System.Drawing.Image.FromStream(fs, true); fs.Close(); SaveImage(image, fileName, w, h); } /// <summary> /// 生成图片缩略图 指定文件流生成 /// </summary> public static void SaveImage(Stream fs, string fileName, int w, int h) { Image image = System.Drawing.Image.FromStream(fs, true); SaveImage(image, fileName, w, h); } /// <summary> /// 生成图片缩略图 /// </summary> public static void SaveImage(System.Drawing.Image image, string fileName, int w, int h, int high = 90) { if (w == 0 && h == 0) { w = image.Width; h = image.Height; } else if (w > 0 && h > 0) { if (image.Width > image.Height) { if (image.Width > w) { h = (int)(image.Height * ((decimal)w / image.Width)); } else { h = image.Height; w = image.Width; } } else { if (image.Height > h) { w = (int)(image.Width * ((decimal)h / image.Height)); } else { h = image.Height; w = image.Width; } } } else if (w > 0) { if (image.Width > w) { h = (int)(image.Height * ((decimal)w / image.Width)); } else { h = image.Height; w = image.Width; } } else if (h > 0) { if (image.Height > h) { w = (int)(image.Width * ((decimal)h / image.Height)); } else { h = image.Height; w = image.Width; } } Bitmap ret = new Bitmap(w, h); using (Graphics g = Graphics.FromImage(ret)) { g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; g.FillRectangle(Brushes.White, 0, 0, w, h); g.DrawImage(image, 0, 0, w, h); EncoderParameters parms = new EncoderParameters(); long[] quality = new long[1]; quality[0] = high; EncoderParameter parm = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality); parms.Param[0] = parm; ImageCodecInfo[] arr = ImageCodecInfo.GetImageEncoders(); ImageCodecInfo ar = null; for (int x = 0; x < arr.Length; x++) { if (arr[x].FormatDescription.Equals("JPEG")) { ar = arr[x]; break; } } ret.Save(fileName, ar, parms); ret.Dispose(); image.Dispose(); } }
ASP.NET 生成缩略图片类分享
猜你喜欢
转载自www.cnblogs.com/ubshoes/p/9163448.html
今日推荐
周排行