在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的数值以达到合适的压缩效果。