阅读量:15
在C#中压缩图片并保持质量的方法可以使用以下代码示例:
using System; using System.Drawing; using System.Drawing.Imaging; using System.IO; public static class ImageHelper { public static void CompressImage(string sourcePath, string destinationPath, long quality) { using (Bitmap bmp = new Bitmap(sourcePath)) { ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg); Encoder encoder = Encoder.Quality; EncoderParameter encoderParameter = new EncoderParameter(encoder, quality); EncoderParameters encoderParameters = new EncoderParameters(1); encoderParameters.Param[0] = encoderParameter; bmp.Save(destinationPath, jpgEncoder, encoderParameters); } } private static ImageCodecInfo GetEncoder(ImageFormat format) { ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders(); foreach (ImageCodecInfo codec in codecs) { if (codec.FormatID == format.Guid) { return codec; } } return null; } } // 使用示例 string sourcePath = @"C:\input.jpg"; string destinationPath = @"C:\output.jpg"; long quality = 50; // 压缩质量,范围从0到100 ImageHelper.CompressImage(sourcePath, destinationPath, quality);
在上面的示例中,首先通过Bitmap
类加载图片,然后获取JPEG编码器并设置压缩质量参数。最后保存压缩后的图片到指定路径。您可以调整quality
参数来控制压缩质量,值范围从0到100,0表示最低质量,100表示最高质量。