JpegBitmapEncoder QualityLevel无效

时间:2017-07-25 14:32:01

标签: c# wpf image-processing

我想用JpegBitmapEncoder将图像保存为Jpeg,但设置QualityLevel没有效果?生成的jpeg总是相同的大小(对于2200x1500px,大约为4mb)。

        RenderTargetBitmap rtb = new RenderTargetBitmap(collage.Breite, collage.Hoehe, dpi, dpi, System.Windows.Media.PixelFormats.Default);
        canvas.UpdateLayout();
        rtb.Render(canvas);
        JpegBitmapEncoder jpgEncoder = new JpegBitmapEncoder();
        jpgEncoder.QualityLevel = 35; // no effect, Image to big
        jpgEncoder.Frames.Add(BitmapFrame.Create(rtb));
        using (var fs = System.IO.File.OpenWrite(myfilename, variables)))
        {
            jpgEncoder.Save(fs);
            fs.Close();
            fs.Dispose();
        }

1 个答案:

答案 0 :(得分:0)

我把它改为:

var fs = new FileStream(myfilename, variables), FileMode.Create);

jpgEncoder.Save(fs); 
fs.Close();