码农之家

专注优质代码开发,为软件行业发展贡献力量

C# .net Core 图片缩放和压缩

        /// <summary>
        /// 按宽度缩放
        /// </summary>
        /// <param name="bmp"></param>
        /// <param name="width"></param>
        /// <returns></returns>
        private static Image Resizer(this Image bmp, int width)
        {
            if (bmp.Width < width || width == 0) return bmp;
 
            Bitmap ob = new Bitmap(width, bmp.Height * width / bmp.Width);
 
            using (var g = Graphics.FromImage(ob))
            {
                g.Clear(Color.WhiteSmoke);
                g.DrawImage(bmp, new Rectangle(0, 0, ob.Width, ob.Height), 0, 0, bmp.Width, bmp.Height, GraphicsUnit.Pixel);
            }
            return ob;
        }
        /// <summary>
        /// path:路径;quality:质量;
        /// </summary>
        /// <param name="bmp"></param>
        /// <param name="path">路径</param>
        /// <param name="quality">质量</param>
        public static void Save(this Image bmp, string path, int quality)
        {
 
            EncoderParameters eps = new EncoderParameters();
 
            eps.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
 
            bmp.Save(path, ImageCodecInfo.GetImageEncoders().FirstOrDefault(x => x.FormatID == ImageFormat.Jpeg.Guid), eps);
 
        }

0 评论数