c#

C# Picture如何进行图片压缩

小樊
121
2024-07-10 00:32:29
栏目: 编程语言

在C#中进行图片压缩可以使用System.Drawing命名空间中的Bitmap类和Graphics类来实现。下面是一个简单的示例代码,演示了如何将图片进行压缩:

using System;
using System.Drawing;
using System.Drawing.Imaging;

public static void CompressImage(string inputImagePath, string outputImagePath, long quality)
{
    using (Bitmap bmp = new Bitmap(inputImagePath))
    {
        ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);
        Encoder encoder = Encoder.Quality;
        EncoderParameters encoderParameters = new EncoderParameters(1);
        EncoderParameter encoderParameter = new EncoderParameter(encoder, quality);
        encoderParameters.Param[0] = encoderParameter;
        bmp.Save(outputImagePath, jpgEncoder, encoderParameters);
    }
}

private static ImageCodecInfo GetEncoder(ImageFormat format)
{
    ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
    foreach (ImageCodecInfo codec in codecs)
    {
        if (codec.FormatID == format.Guid)
        {
            return codec;
        }
    }
    return null;
}

// 使用方法
CompressImage("input.jpg", "output.jpg", 50);

在上面的示例代码中,CompressImage方法接受三个参数:输入图片路径,输出图片路径和压缩质量。压缩质量的值在0到100之间,值越小表示压缩质量越低。GetEncoder方法用于获取指定格式的编码器。

请注意,压缩图片可能会导致图片质量的损失,因此需要根据具体情况调整压缩质量的值。

0
看了该问题的人还看了