还记得前段时间的一篇文章写了"      问题的地点经过筛选,确定是出在图片保存时候,BitMap.Save();,按照一般的程序流程,只需简单的BitMap.Save(string Path,ImageFormat)就可以了.但是默认值不能满足我们的需求.而默认的jpeg保存质量应该是在60左右.这个时候我们需要修改默认值..修改的方法就是设置定义ImageCodecInfo类和EncoderParameters类,具体的代码如下:ImageCodecInfo类则指定需要保存的格式,EncoderParameters则是EncoderParameter类的集合数组,在EncoderParameter类中使用System.Drawing.Imaging.Encoder类来制定需要呈现的方式和各种参数,例如图片质量参数,扫描方法参数,色度表参数,压缩参数,颜色深度等等.到此,大家应该明白修改图片质量的步骤和方法了.主要就是对System.Drawing.Imaging.Encoder设置,然后通过System.Drawing.Imaging.Encoder构造出来EncoderParameter类,将EncoderParameter传递给EncoderParameters数组,从而得到一个完全符合自己意愿的图片!呵呵,说了一大堆.起始代码很简单.如下:
先引入:
using System;
using System.Drawing;
using System.Drawing.Imaging;
 1使用GDI+绘制高质量图和字体(2)
 2使用GDI+绘制高质量图和字体(2)Bitmap myBitmap;  //建立位图         
 3使用GDI+绘制高质量图和字体(2)ImageCodecInfo myImageCodecInfo;
 4使用GDI+绘制高质量图和字体(2)Encoder myEncoder;//这个是重点类,
 5使用GDI+绘制高质量图和字体(2)EncoderParameter myEncoderParameter;
 6使用GDI+绘制高质量图和字体(2)EncoderParameters myEncoderParameters;
 7使用GDI+绘制高质量图和字体(2)myBitmap = new Bitmap( Server.MapPath("a.bmp") );
 8使用GDI+绘制高质量图和字体(2)//请注意这里的myImageCodecInfo声名..可以修改为更通用的.看后面
 9使用GDI+绘制高质量图和字体(2)ImageCodecInfo myImageCodecInfo = ImageCodecInfo.GetImageEncoders()[0];
10使用GDI+绘制高质量图和字体(2)myEncoder = Encoder.Quality;
11使用GDI+绘制高质量图和字体(2)myEncoderParameters = new EncoderParameters(1);
12使用GDI+绘制高质量图和字体(2)// 在这里设置图片的质量等级为95L.
13使用GDI+绘制高质量图和字体(2)myEncoderParameter = new EncoderParameter(myEncoder, 95L);
14使用GDI+绘制高质量图和字体(2)myEncoderParameters.Param[0= myEncoderParameter;//将构建出来的EncoderParameter类赋给EncoderParameters数组
15使用GDI+绘制高质量图和字体(2)myBitmap.Save(Server.MapPath("ok.jpg"), myImageCodecInfo, myEncoderParameters);//保存图片
16使用GDI+绘制高质量图和字体(2)myEncoderParameter.Dispose();
17使用GDI+绘制高质量图和字体(2)myEncoderParameters.Dispose();
18使用GDI+绘制高质量图和字体(2)myBitmap.Dispose();

     对于这个ImageCodecInfo myImageCodecInfo = ImageCodecInfo.GetImageEncoders()[0];的设置,也可以这么写.比较通用:

 1使用GDI+绘制高质量图和字体(2)private static ImageCodecInfo GetEncoderInfo(String mimeType)
 2

 

     通过上面的设置,生成的图片效果非常不错,而最重要的是你可以通过增加EncoderParameters数组的维数来做到非常多的效果,比如,给图片整体加亮,减淡等特殊处理..

相关文章:

  • 2022-01-15
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-02-09
  • 2021-10-23
  • 2021-08-08
  • 2022-12-23
猜你喜欢
  • 2021-10-07
  • 2021-06-12
  • 2022-12-23
  • 2021-11-21
  • 2021-05-28
相关资源
相似解决方案