using System; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Text; namespace SlnMesnac.Common { public class ImageHelper { #region 单例实现 private static readonly ImageHelper lazy = new ImageHelper(); public static ImageHelper Instance { get { return lazy; } } #endregion public void CompressImage(string sourceImagePath, string destinationPath, long quality) { using (Image image = Image.FromFile(sourceImagePath)) { ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg); System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality; EncoderParameters myEncoderParameters = new EncoderParameters(1); EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, quality); myEncoderParameters.Param[0] = myEncoderParameter; image.Save(destinationPath, jpgEncoder, myEncoderParameters); } } private ImageCodecInfo GetEncoder(ImageFormat format) { ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders(); foreach (ImageCodecInfo codec in codecs) { if (codec.FormatID == format.Guid) { return codec; } } return null; } } }