c#

c#图片压缩的方法是什么

小亿
196
2024-03-07 13:45:24
栏目: 编程语言

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

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

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

        sourceImage.Save(outputImagePath, jpgEncoder, encoderParameters);
    }
}

private static ImageCodecInfo GetEncoder(ImageFormat format)
{
    ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();

    foreach (var codec in codecs)
    {
        if (codec.FormatID == format.Guid)
        {
            return codec;
        }
    }

    return null;
}

在上面的示例中,CompressImage方法接受三个参数:原始图片的路径sourceImagePath、压缩后图片的保存路径outputImagePath以及压缩质量quality。在方法内部,首先使用Bitmap类加载原始图片,然后设置压缩编码器和参数,并最终保存压缩后的图片到指定路径。

需要注意的是,quality参数的取值范围通常是0到100之间,值越大表示图片质量越好。可以根据实际需求调整quality的数值以达到合适的压缩效果。

0
看了该问题的人还看了