C#批量图片压缩并保存
时间: 2023-12-01 11:56:08 浏览: 126
你可以使用C#中的System.Drawing命名空间来压缩图片。以下是一个简单的示例:
```csharp
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
public void CompressImages(string inputFolder, string outputFolder, int quality)
{
// 获取输入文件夹中的所有图片文件
string[] files = Directory.GetFiles(inputFolder, "*.jpg");
foreach (string file in files)
{
// 加载图片
using (Bitmap bmp = new Bitmap(file))
{
// 设置压缩质量
EncoderParameter qualityParam = new EncoderParameter(Encoder.Quality, quality);
// 获取JPEG编码器
ImageCodecInfo jpegEncoder = GetEncoder(ImageFormat.Jpeg);
// 设置编码器参数
EncoderParameters encoderParams = new EncoderParameters(1);
encoderParams.Param[0] = qualityParam;
// 压缩并保存图片
string outputPath = Path.Combine(outputFolder, Path.GetFileName(file));
bmp.Save(outputPath, jpegEncoder, encoderParams);
}
}
}
private ImageCodecInfo GetEncoder(ImageFormat format)
{
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
foreach (ImageCodecInfo codec in codecs)
{
if (codec.FormatID == format.Guid)
{
return codec;
}
}
return null;
}
```
这个方法将输入文件夹中的所有JPEG图片压缩到指定的质量,并将它们保存到输出文件夹中。你可以调整quality参数来控制压缩质量,值越小,压缩后的文件大小越小,但图像质量也会降低。
阅读全文