3
我只是加载JPEG图像并将其保存,无需任何操作。但图像质量明显降低。c#:在以100%质量保存JPEG时降低图像质量
下面是代码:
Bitmap imgOutput = new Bitmap(@"D:\image.jpg");
Graphics outputGraphics = Graphics.FromImage(imgOutput);
EncoderParameters myEncoderParameters = new EncoderParameters(3);
myEncoderParameters.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
myEncoderParameters.Param[1] = new EncoderParameter(System.Drawing.Imaging.Encoder.ScanMethod, (int)EncoderValue.ScanMethodInterlaced);
myEncoderParameters.Param[2] = new EncoderParameter(System.Drawing.Imaging.Encoder.RenderMethod, (int)EncoderValue.RenderProgressive);
ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders();
ImageCodecInfo ici = null;
foreach (ImageCodecInfo codec in codecs)
{
if (codec.MimeType == "image/jpeg")
ici = codec;
}
imgOutput.Save(@"D:\result.jpg", ici, myEncoderParameters);
而且我得到什么:http://i.imgur.com/5bG1tPM.jpg变焦:http://i.imgur.com/vdx8sL5.jpg
有另一种图像质量设置?
是的,PNG节省很多。但尽管JPEG是有损格式,但当我在Photoshop中打开图像并将其另存为JPEG时,结果图像完美无瑕(甚至文件较小)。这意味着JPEG格式允许保存图像更加正确。我想知道如何) – user1032559 2013-05-04 11:43:10
@ user1032559它似乎是GDI +,这是不好的。查看更新和链接。 – 2013-05-04 14:06:38
我查看了这个工具的源代码 - http://www.codeproject.com/Articles/9727/Image-Processing-Lab-in-C它以非标准方法保存图像,效果很好。唯一的区别是它们不使用EncoderParameters。但是,当我保存没有这些参数的图像时,JPEG的总体质量非常低。 – user1032559 2013-05-06 08:03:41