c#圖片壓縮的方法是什么

c#
小億
189
2024-03-07 13:45:24
欄目: 編程語言

在C#中,可以使用System.Drawing命名空間中的Bitmap類來實(shí)現(xiàn)圖片壓縮。以下是一個(gè)簡單的示例代碼,演示如何使用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方法接受三個(gè)參數(shù):原始圖片的路徑sourceImagePath、壓縮后圖片的保存路徑outputImagePath以及壓縮質(zhì)量quality。在方法內(nèi)部,首先使用Bitmap類加載原始圖片,然后設(shè)置壓縮編碼器和參數(shù),并最終保存壓縮后的圖片到指定路徑。

需要注意的是,quality參數(shù)的取值范圍通常是0到100之間,值越大表示圖片質(zhì)量越好。可以根據(jù)實(shí)際需求調(diào)整quality的數(shù)值以達(dá)到合適的壓縮效果。

0