在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
方法用于獲取指定格式的編碼器。
請注意,壓縮圖片可能會導致圖片質量的損失,因此需要根據具體情況調整壓縮質量的值。