在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格式的图片,如果需要支持其他格式的图片,需要根据实际情况修改代码。

c#-批量图片怎么压缩

原文地址: https://www.cveoy.top/t/topic/kGD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录