用C#缩小jpg图片大小
时间: 2025-01-04 14:32:07 浏览: 7
### 使用C#减少JPG文件大小
为了有效地压缩JPEG图像并减小其文件大小,可以利用`System.Drawing`命名空间中的类以及设置编码参数来调整质量因子。下面是一个完整的代码示例展示如何通过编程方式实现这一目标:
```csharp
using System;
using System.Drawing;
using System.Drawing.Imaging;
public class ImageCompressor {
public static void CompressImage(string sourcePath, string destinationPath, long quality) {
// 加载原始图片
using (var image = new Bitmap(sourcePath)) {
EncoderParameter qualityParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
// 获取JPEG编码器
ImageCodecInfo jpegEncoder = GetEncoder(ImageFormat.Jpeg);
// 设置编码参数集合
EncoderParameters encoderParams = new EncoderParameters(1);
encoderParams.Param[0] = qualityParam;
// 保存高质量压缩后的图片到指定路径
image.Save(destinationPath, jpegEncoder, encoderParams);
}
}
private static ImageCodecInfo GetEncoder(ImageFormat format) {
foreach (ImageCodecInfo codec in ImageCodecInfo.GetImageEncoders()) {
if (codec.FormatID == format.Guid)
return codec;
}
throw new ArgumentException("无法找到匹配的编码器", nameof(format));
}
}
```
此方法接受源文件路径、目标文件路径和表示所需输出质量级别的整数值作为输入参数[^1]。
当调用上述函数时,可以通过传递较低的质量值(例如20L至80L之间)来显著降低最终生成的JPEG文件尺寸;但是请注意,这样做可能会牺牲一些视觉效果上的细节清晰度。
阅读全文