在C#中压缩图片并保持质量的方法可以使用以下代码示例:
using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
public static class ImageHelper
{
public static void CompressImage(string sourcePath, string destinationPath, long quality)
{
using (Bitmap bmp = new Bitmap(sourcePath))
{
ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);
Encoder encoder = Encoder.Quality;
EncoderParameter encoderParameter = new EncoderParameter(encoder, quality);
EncoderParameters encoderParameters = new EncoderParameters(1);
encoderParameters.Param[0] = encoderParameter;
bmp.Save(destinationPath, jpgEncoder, encoderParameters);
}
}
private static ImageCodecInfo GetEncoder(ImageFormat format)
{
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
foreach (ImageCodecInfo codec in codecs)
{
if (codec.FormatID == format.Guid)
{
return codec;
}
}
return null;
}
}
// 使用示例
string sourcePath = @"C:\input.jpg";
string destinationPath = @"C:\output.jpg";
long quality = 50; // 压缩质量,范围从0到100
ImageHelper.CompressImage(sourcePath, destinationPath, quality);
在上面的示例中,首先通过Bitmap
类加载图片,然后获取JPEG编码器并设置压缩质量参数。最后保存压缩后的图片到指定路径。您可以调整quality
参数来控制压缩质量,值范围从0到100,0表示最低质量,100表示最高质量。