C# GDI+保存圖片設置圖片質量_C#保存Jpeg圖片質量

一、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+ 使用基礎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章