C#中提高保存jpg图像的质量
作者:作者不详  发布日期:2011/06/12 18:51:28
C#中提高保存jpg图像的质量

                                 C#中提高保存jpg图像的质量

       在程序中直接生成的jpg图像,汉字有毛边,生成的图片会不清楚。处理一下可以提高质量。
      联合图像专家组 (JPEG) 文件中的压缩由一组 quantization 表控制。 通常,会有两个表在每个文件: 一个用于亮度 (亮度) 信息,另一个用于 chrominance (颜色) 信息。 这些表是确定的离散的余弦值为 8x8 块 quantized 方式的 8x8 矩阵。

     JPEG 质量系数用于生成一对 quantization 表。 许多应用程序基于独立 JPEG 组 (IJG) 代码的生成相同的 quantization 表,为 IJG 引用代码。 但是,一些应用程序可能而是使用自定义 quantization 表。
     JPEG 编码器 System.Drawing 中提供的编码器参数设置 JPEG 质量系数保存 JPEG 文件。 此编码器参数符合的 1 到 100 范围使用整数的约定。 此编码器参数的值将影响创建和使用 quantization 表与建议的质量系数。

     具体代码如下:

System.Drawing.Image newimage = System.Drawing.Image.FromFile("c:\\00.jpg");
Bitmap bt = new Bitmap(newimage);
Graphics g = Graphics.FromImage(bt);

(中间略去在画布上绘图的代码)

string lujing = @"c:\1.jpg";

//处理JPG质量的函数
int level = 100; //图像质量 1-100的范围
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
ImageCodecInfo ici = null;
foreach (ImageCodecInfo codec in codecs)
{
   if (codec.MimeType == "image/jpeg")
   ici = codec;
}
EncoderParameters ep = new EncoderParameters();
ep.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, (long)level);

bt.Save(lujing, ici, ep);

//释放位图缓存
bt.Dispose();




本文来源:



C/S框架网|原创精神.创造价值.打造精品


扫一扫加作者微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务


上一篇 下一篇