我正在对进入的实时图像进行编码,这些图像是Gray16图像或Bgr32图像。 我正在尝试使用JPEGEncoding降低现场质量,并将字节数保存到内存流中X时间。
Bgr32图像以<2ms编码,而Gray16图像约20-30ms。我已经尝试了所有默认编码器(Jpeg,gif,png等),它们都给出了相同的结果。
这是正常行为还是有问题?我能改进什么?
using (MemoryStream oMemStream = new MemoryStream())
{
Debug.WriteLine("Before: " + oWatch.ElapsedMilliseconds);
JpegBitmapEncoder oEncoder = new JpegBitmapEncoder();
oEncoder.QualityLevel = 75;
BtmapSource = BitmapSource.Create(640, 480, 96, 96, System.Windows.Media.PixelFormats.Gray16, null, bPixels, 640 * System.Windows.Media.PixelFormats.Gray16.BitsPerPixel / 8);
var BitmapFrame oFrame = BitmapFrame.Create(BtmapSource);
oEncoder.Frames.Add(oFrame);
oEncoder.Save(oMemStream);
oWatch.Stop();
Debug.WriteLine("After: " + oWatch.ElapsedMilliseconds);
}