c# 压缩图片
时间: 2023-07-22 22:09:13 浏览: 150
c#图片压缩
在 C# 中,可以使用 System.Drawing 命名空间中的 Image 类来压缩图片。下面是一个简单的示例代码:
```csharp
using System.Drawing;
using System.Drawing.Imaging;
public void CompressImage(string sourcePath, string destinationPath, long quality)
{
using (var image = Image.FromFile(sourcePath))
{
var encoderParameters = new EncoderParameters(1);
var encoderParameter = new EncoderParameter(Encoder.Quality, quality);
encoderParameters.Param[0] = encoderParameter;
var codecInfo = GetEncoderInfo("image/jpeg");
image.Save(destinationPath, codecInfo, encoderParameters);
}
}
private ImageCodecInfo GetEncoderInfo(string mimeType)
{
var codecs = ImageCodecInfo.GetImageEncoders();
foreach (var codec in codecs)
{
if (codec.MimeType == mimeType)
{
return codec;
}
}
return null;
}
```
这个方法接受三个参数:源文件路径、目标文件路径和压缩质量。其中,quality 参数的取值范围为 0 到 100,100 表示不压缩,0 表示最高压缩率。在方法内部,我们首先使用 Image.FromFile 方法加载源图片,然后创建一个 EncoderParameters 对象,用于设置压缩质量。接着,我们通过 GetEncoderInfo 方法获取 JPEG 编码器的信息,最后使用 Image.Save 方法将压缩后的图片保存到目标路径。
阅读全文