在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á)到合適的壓縮效果。