先引入:
using System;
using System.Drawing;
using System.Drawing.Imaging;
1
2
Bitmap myBitmap; //建立位图
3
ImageCodecInfo myImageCodecInfo;
4
Encoder myEncoder;//这个是重点类,
5
EncoderParameter myEncoderParameter;
6
EncoderParameters myEncoderParameters;
7
myBitmap = new Bitmap( Server.MapPath("a.bmp") );
8
//请注意这里的myImageCodecInfo声名..可以修改为更通用的.看后面
9
ImageCodecInfo myImageCodecInfo = ImageCodecInfo.GetImageEncoders()[0];
10
myEncoder = Encoder.Quality;
11
myEncoderParameters = new EncoderParameters(1);
12
// 在这里设置图片的质量等级为95L.
13
myEncoderParameter = new EncoderParameter(myEncoder, 95L);
14
myEncoderParameters.Param[0] = myEncoderParameter;//将构建出来的EncoderParameter类赋给EncoderParameters数组
15
myBitmap.Save(Server.MapPath("ok.jpg"), myImageCodecInfo, myEncoderParameters);//保存图片
16
myEncoderParameter.Dispose();
17
myEncoderParameters.Dispose();
18
myBitmap.Dispose();
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
对于这个ImageCodecInfo myImageCodecInfo = ImageCodecInfo.GetImageEncoders()[0];的设置,也可以这么写.比较通用:
1
private static ImageCodecInfo GetEncoderInfo(String mimeType)
2
2
通过上面的设置,生成的图片效果非常不错,而最重要的是你可以通过增加EncoderParameters数组的维数来做到非常多的效果,比如,给图片整体加亮,减淡等特殊处理..