C# GDI+保存图片设置图片质量_C#保存Jpeg图片质量

发布时间 2023-08-26 14:49:01作者: 天马3798

一、C# GDI+  Image对象保存图片质量

Image bmp = Bitmap.FromFile("3.png");
//默认保存质量 预估80%
bmp.Save("default3.jpg", ImageFormat.Jpeg);

//保存质量
ImageCodecInfo myImageCodecInfo = GetEncoderInfo("image/jpeg");
System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
EncoderParameters myEncoderParameters = new EncoderParameters(1);
//25L
EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 25L);
myEncoderParameters.Param[0] = myEncoderParameter;
bmp.Save("default25.jpg", myImageCodecInfo, myEncoderParameters);

//50L
myEncoderParameter = new EncoderParameter(myEncoder, 50L);
myEncoderParameters.Param[0] = myEncoderParameter;
bmp.Save("default50.jpg", myImageCodecInfo, myEncoderParameters);
//100L
myEncoderParameter = new EncoderParameter(myEncoder, 100L);
myEncoderParameters.Param[0] = myEncoderParameter;
bmp.Save("default100.jpg", myImageCodecInfo, myEncoderParameters);

效果:

default.jpg   +default25.jpg效果

 

 

二、Image.Save() 详细说明:

Image.Save方法共有五种重载 
其中Save(String, ImageCodecInfo, EncoderParameters)和Save(Stream, ImageCodecInfo,EncoderParameters)这两种方法课以调节图像质量。
Save.(string ,ImageCodeInfo,EncoderParameters) 使用方法:

参数:

filename                类型:System.String        字符串,包含要将此 Image 保存到的文件的名称。

encoder                 类型:System.Drawing.Imaging.ImageCodecInfo        此 Image 的 ImageCodecInfo。

encoderParams    类型:System.Drawing.Imaging.EncoderParameters            用于该 Image 的 EncoderParameters。

 

获取编码器
    ImageCodecInfo myImageCodecInfo;
    //获得JPEG格式的编码器
    myImageCodecInfo = GetEncoderInfo("image/jpeg");
设置图像质量
    System.Drawing.Imaging.Encoder myEncoder;
    EncoderParameter myEncoderParameter;
    EncoderParameters myEncoderParameters;
    // for the Quality parameter category.
    myEncoder = System.Drawing.Imaging.Encoder.Quality;
    // EncoderParameter object in the array.
    myEncoderParameters = new EncoderParameters(1);
    //设置质量 数字越大质量越好,但是到了一定程度质量就不会增加了,MSDN上没有给范围,只说是32为非负整数
    myEncoderParameter = new EncoderParameter(myEncoder, 100L);
    myEncoderParameters.Param[0] = myEncoderParameter;

 

 

 

更多:

C#图片处理之:图片缩放和剪裁

GDI+ 位图介绍

.Net Core GDI+ 使用基础