在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的數值以達到合適的壓縮效果。