110,543
社区成员
发帖
与我相关
我的任务
分享
public static void SaveImage(string fileName, int quality)
{
//读取画像文件
Bitmap bmp= new Bitmap(fileName);
// EncoderParameter对象只能容纳1个
// EncoderParameters类的新instance初始化
//在这里只是指定质量值,所以只需要1个
System.Drawing.Imaging.EncoderParameters eps =
new System.Drawing.Imaging.EncoderParameters(1);
//指定质量
System.Drawing.Imaging.EncoderParameter ep =
new System.Drawing.Imaging.EncoderParameter(
System.Drawing.Imaging.Encoder.Quality, quality);
eps.Param[0] = ep;
//取得ImageEncoder相关的信息
System.Drawing.Imaging.ImageCodecInfo ici;
ici = GetEncoderInfo("image/jpeg");
//取得新文件的扩展名
string ext = ici.FilenameExtension.Split(';')[0];
ext = System.IO.Path.GetExtension(ext).ToLower();
//定保存文件的名称(改变扩展名)
string saveName= System.IO.Path.ChangeExtension(fileName, ext);
//保存
bmp.Save(saveName, ici, eps);
}
private static System.Drawing.Imaging.ImageCodecInfo
GetEncoderInfo(string mineType)
{
//取得所有向GDI+被装入的ImageEncode相关信息
System.Drawing.Imaging.ImageCodecInfo [] encs=
System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders();
//如果检测到被指定的MimeType,返回
foreach (System.Drawing.Imaging.ImageCodecInfo enc in encs)
if (enc.MimeType == mineType)
return enc;
return null;
}