做发送邮件的时候,要将导出的图像作为附件发出去,发现导出附件的图像太大,在网上找了些方法,特贴出来分享记录一下
System.Drawing.Imaging.Encoder encoder = System.Drawing.Imaging.Encoder.Quality;//获取品质(压缩率)编码 EncoderParameter mycoder = new EncoderParameter(encoder, 30L);//0压缩率最大,100品质最高 EncoderParameters myCoders = new EncoderParameters(1);//参数数组,大小为1 myCoders.Param[0] = mycoder;//添加一个参数 ImageCodecInfo jpgInfo = GetEncoder(ImageFormat.Jpeg);//获取JPG格式编解码信息 Image bmp = Image.FromFile(attachFilePath); bmp.Save(attachFilePath, jpgInfo, myCoders);//以指定品质率的JPG格式保存
private ImageCodecInfo GetEncoder(ImageFormat format)//获取特定的图像编解码信息 { ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();
foreach (ImageCodecInfo codec in codecs) { if (codec.FormatID == format.Guid) { return codec; } } return null; }