您的位置:首页 > 其它

压缩图片

2015-10-14 15:42 148 查看
/// <summary>
/// 压缩图片
/// </summary>
/// <param name="fileByte">图片字节数组</param>
/// <param name="quality">压缩质量0-100之间,数值越大质量越高</param>
/// <returns></returns>
public static byte[] CompressionImage(byte[] fileByte, long quality)
{
using (MemoryStream fileStream = new MemoryStream(fileByte))
{
using (System.Drawing.Image img = System.Drawing.Image.FromStream(fileStream))
{
using (Bitmap bitmap = new Bitmap(img))
{
ImageCodecInfo CodecInfo = GetEncoder(img.RawFormat);
System.Drawing.Imaging.Encoder myEncoder = System.Drawing.Imaging.Encoder.Quality;
EncoderParameters myEncoderParameters = new EncoderParameters(1);
EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, quality);
myEncoderParameters.Param[0] = myEncoderParameter;
using (MemoryStream ms = new MemoryStream())
{
bitmap.Save(ms, CodecInfo, myEncoderParameters);
myEncoderParameters.Dispose();
myEncoderParameter.Dispose();
return ms.ToArray();
}
}
}
}
}
/// <summary>
/// 获取指定图片编码信息
/// </summary>
/// <param name="format"></param>
/// <returns></returns>
private static ImageCodecInfo GetEncoder(ImageFormat format)
{
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
foreach (ImageCodecInfo codec in codecs)
{
if (codec.FormatID == format.Guid)
{
return codec;
}
}
return null;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: