在C#中进行图片压缩可以使用System.Drawing命名空间中的Bitmap类和Graphics类来实现。下面是一个简单的示例代码,演示了如何将图片进行压缩:
using System;
using System.Drawing;
using System.Drawing.Imaging;
public static void CompressImage(string inputImagePath, string outputImagePath, long quality)
{
using (Bitmap bmp = new Bitmap(inputImagePath))
{
ImageCodecInfo jpgEncoder = GetEncoder(ImageFormat.Jpeg);
Encoder encoder = Encoder.Quality;
EncoderParameters encoderParameters = new EncoderParameters(1);
EncoderParameter encoderParameter = new EncoderParameter(encoder, quality);
encoderParameters.Param[0] = encoderParameter;
bmp.Save(outputImagePath, 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;
}
// 使用方法
CompressImage("input.jpg", "output.jpg", 50);
在上面的示例代码中,CompressImage
方法接受三个参数:输入图片路径,输出图片路径和压缩质量。压缩质量的值在0到100之间,值越小表示压缩质量越低。GetEncoder
方法用于获取指定格式的编码器。
请注意,压缩图片可能会导致图片质量的损失,因此需要根据具体情况调整压缩质量的值。