c#-批量图片怎么压缩
在C#中,可以使用Image类和EncoderParameters类来实现批量压缩图片。
以下是一个简单的示例代码:
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
// 压缩图片的方法
public static void CompressImage(string sourcePath, string targetPath, long quality)
{
// 加载原始图片
using (var sourceImage = Image.FromFile(sourcePath))
{
// 设置压缩质量
var encoderParams = new EncoderParameters(1);
encoderParams.Param[0] = new EncoderParameter(Encoder.Quality, quality);
// 获取图片编码器
var codec = ImageCodecInfo.GetImageEncoders().FirstOrDefault(e => e.FormatID == sourceImage.RawFormat.Guid);
// 压缩图片并保存到目标路径
sourceImage.Save(targetPath, codec, encoderParams);
}
}
// 批量压缩图片的方法
public static void CompressImages(string folderPath, string targetFolder, long quality)
{
// 获取原始图片文件列表
var sourceFiles = Directory.EnumerateFiles(folderPath, "*.jpg");
// 遍历原始图片文件列表
foreach (var sourceFile in sourceFiles)
{
// 构造目标路径
var targetPath = Path.Combine(targetFolder, Path.GetFileName(sourceFile));
// 压缩图片并保存到目标路径
CompressImage(sourceFile, targetPath, quality);
}
}
// 使用示例
CompressImages(@"C:\sourceFolder", @"C:\targetFolder", 80);
上述代码中,CompressImage方法用于压缩单张图片,CompressImages方法则用于批量压缩图片。
其中,sourcePath参数表示原始图片路径,targetPath参数表示目标图片路径,quality参数表示压缩质量,取值范围为0-100。
该示例代码仅支持压缩JPEG格式的图片,如果需要支持其他格式的图片,需要根据实际情况修改代码。
原文地址: https://www.cveoy.top/t/topic/kGD 著作权归作者所有。请勿转载和采集!