| 
 | 
 
 
 楼主 |
发表于 2023-7-5 16:23:01
|
显示全部楼层
 
 
 
在C#中,可以使用System.Drawing命名空间中的ImageCodecInfo和EncoderParameters类来压缩图像质量。以下是一个示例代码: 
 
csharp 
 
using System.Drawing; 
using System.Drawing.Imaging; 
 
public void CompressImage(string inputImagePath, string outputImagePath, long quality) 
{ 
    // 获取原始图像 
    Image inputImage = Image.FromFile(inputImagePath); 
 
    // 获取JPEG编码器 
    ImageCodecInfo jpegEncoder = GetEncoder(ImageFormat.Jpeg); 
 
    // 创建压缩参数 
    EncoderParameters encoderParameters = new EncoderParameters(1); 
    encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, quality); 
 
    // 保存压缩后的图像 
    inputImage.Save(outputImagePath, jpegEncoder, encoderParameters); 
} 
 
private ImageCodecInfo GetEncoder(ImageFormat format) 
{ 
    ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders(); 
 
    foreach (ImageCodecInfo codec in codecs) 
    { 
        if (codec.FormatID == format.Guid) 
        { 
            return codec; 
        } 
    } 
 
    return null; 
} 
 
在上面的代码中,CompressImage方法接受输入图像路径、输出图像路径和压缩质量作为参数。它首先加载输入图像,然后获取JPEG编码器。然后,它创建一个EncoderParameters对象,并将压缩质量作为参数传递给EncoderParameters对象。最后,它使用Save方法将压缩后的图像保存到输出路径。 
 
GetEncoder方法用于获取指定图像格式的编码器。它遍历所有可用的编码器,并根据格式的GUID匹配编码器。" |   
 
 
 
 |