C# Winform版批量压缩图片程序
时间: 2024-02-09 19:10:02 浏览: 84
好的,您想了解C# Winform版批量压缩图片程序的相关内容,我可以为您提供一些参考信息。首先,您可以使用C#中的System.Drawing命名空间下的Image类来实现对图片的压缩操作。以下是一个简单的批量压缩图片程序的示例代码:
```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 (var image = Image.FromFile(file))
{
//设置图像编码器的参数,其中quality参数表示图像压缩质量
var encoderParameters = new EncoderParameters(1);
encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, quality);
//获取图像编码器
var codecInfo = GetEncoderInfo("image/jpeg");
if (codecInfo == null)
{
throw new Exception("找不到JPEG编码器");
}
//保存压缩后的图片
var outputPath = Path.Combine(outputFolder, Path.GetFileName(file));
image.Save(outputPath, codecInfo, encoderParameters);
}
}
}
private static ImageCodecInfo GetEncoderInfo(string mimeType)
{
//获取所有图像编码器
var encoders = ImageCodecInfo.GetImageEncoders();
//查找指定MIME类型的编码器
foreach (var encoder in encoders)
{
if (encoder.MimeType == mimeType)
{
return encoder;
}
}
return null;
}
```
在上面的代码中,CompressImages方法用于压缩输入目录下的所有.jpg图片文件,并将压缩后的图片保存到输出目录中。其中,quality参数用于指定图像压缩质量,取值范围为0-100,数值越大表示压缩质量越高,文件大小越大。
另外,需要注意的是,上述代码只适用于.jpg格式的图片,如果需要处理其他格式的图片,需要相应地修改代码。
阅读全文