先创建一个方法,此方法为获得编码器
//获得编码器的函数
public 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;
}
接下来把BitMap生成图片,并的到图片路径
public static string ImagePath(Bitmap img)
{
//获取编码器
ImageCodecInfo myImageCodecInfo;
//获得JPEG格式的编码器
myImageCodecInfo = GetEncoderInfo("image/jpeg");
//设置图像质量
System.Drawing.Imaging.Encoder myEncoder;
EncoderParameter myEncoderParameter;
EncoderParameters myEncoderParameters;
myEncoder = System.Drawing.Imaging.Encoder.Quality;
myEncoderParameters = new EncoderParameters(1);
//设置质量 数字越大质量越好,但是到了一定程度质量就不会增加了,MSDN上没有给范围,只说是32为非负整数
myEncoderParameter = new EncoderParameter(myEncoder, 100L);
myEncoderParameters.Param[0] = myEncoderParameter;
//保存图像
string path = System.AppDomain.CurrentDomain.BaseDirectory; //项目的基目录
string imgUrl = @"/Content/Upload/" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + ".jpg"; //图片的相对路径
//img.Save()方法的第一个参数必须为绝对路径
img.Save(path+imgUrl, myImageCodecInfo, myEncoderParameters);
return imgUrl;
}
扫码关注公众号,一起学习进步!这里或许有你想要的。