700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > c#.Net上传图片压缩质量 不改变尺寸

c#.Net上传图片压缩质量 不改变尺寸

时间:2022-01-06 19:00:33

相关推荐

c#.Net上传图片压缩质量 不改变尺寸

#region 图片压缩

//From:

/// <summary>

/// 图片压缩(降低质量以减小文件的大小)

/// </summary>

/// <param name="srcBitMap">传入的Bitmap对象</param>

/// <param name="destFile">压缩后的图片保存路径</param>

/// <param name="level">压缩等级,0到100,0 最差质量,100 最佳</param>

public static void Compress(Bitmap srcBitMap, string destFile, long level)

{

Stream s = new FileStream(destFile, FileMode.Create);

Compress(srcBitMap, s, level);

s.Close();

}

/// <summary>

/// 编码信息

/// </summary>

/// <param name="mimeType"></param>

/// <returns></returns>

private static ImageCodecInfo GetEncoderInfo(String mimeType)

{

int j;

ImageCodecInfo[] encoders;

encoders = ImageCodecInfo.GetImageEncoders();

for (j = 0; j < encoders.Length; ++j)

{

if (encoders[j].MimeType == mimeType)

return encoders[j];

}

return null;

}

/// <summary>

/// 图片压缩(降低质量以减小文件的大小)

/// </summary>

/// <param name="srcBitmap">传入的Bitmap对象</param>

/// <param name="destStream">压缩后的Stream对象</param>

/// <param name="level">压缩等级,0到100,0 最差质量,100 最佳</param>

private static void Compress(Bitmap srcBitmap, Stream destStream, long level)

{

ImageCodecInfo myImageCodecInfo;

Encoder myEncoder;

EncoderParameter myEncoderParameter;

EncoderParameters myEncoderParameters;

// Get an ImageCodecInfo object that represents the JPEG codec.

myImageCodecInfo = GetEncoderInfo("image/jpeg");

// Create an Encoder object based on the GUID

// for the Quality parameter category.

myEncoder = Encoder.Quality;

// Create an EncoderParameters object.

// An EncoderParameters object has an array of EncoderParameter

// objects. In this case, there is only one

// EncoderParameter object in the array.

myEncoderParameters = new EncoderParameters(1);

// Save the bitmap as a JPEG file with 给定的 quality level

myEncoderParameter = new EncoderParameter(myEncoder, level);

myEncoderParameters.Param[0] = myEncoderParameter;

srcBitmap.Save(destStream, myImageCodecInfo, myEncoderParameters);

}

#endregion

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。