一、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() 詳細說明:
參數:
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;
更多: