using System;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
public class ImageCompressor
{
public static void CompressImage(string inputImagePath, string outputImagePath, int quality)
{
// 读取原始图片
using (Image originalImage = Image.FromFile(inputImagePath))
{
// 创建编码参数对象,用于设置压缩质量
EncoderParameters encoderParams = new EncoderParameters(1);
encoderParams.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, quality);
// 获取JPEG编码器
ImageCodecInfo jpegEncoder = GetEncoder(ImageFormat.Jpeg);
// 将压缩后的图片保存到指定路径
originalImage.Save(outputImagePath, jpegEncoder, encoderParams);
}
}
private static ImageCodecInfo GetEncoder(ImageFormat format)
{
// 获取所有可用的图像编码器
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
// 查找匹配的编码器
foreach (ImageCodecInfo codec in codecs)
{
if (codec.FormatID == format.Guid)
{
return codec;
}
}
return null;
}
}
// 示例用法
class Program
{
static void Main()
{
string inputImagePath = "input.jpg";
string outputImagePath = "output.jpg";
int quality = 50; // 压缩质量,范围为0-100
ImageCompressor.CompressImage(inputImagePath, outputImagePath, quality);
Console.WriteLine("图片压缩完成!");
}
}
System.Drawing.Image 类读取图片,并通过 EncoderParameters 设置压缩质量。CompressImage 方法进行图片压缩。通过调整 quality 参数的值(范围为 0 到 100),你可以控制压缩的程度。较低的值会生成更小的文件,但图片质量也会相应降低。
上一篇:c# exception
下一篇:c# list<>
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站