问题描述
我这边要解码摄像头然后显示出来,写了一个类用于解码,解码后的数据通过InputMap.WritePixels(newRect,ImageBuffer,stride,0,0);进行更新我的InputMap这个变量,到这里都是正常的,都还好,cpu的占用和光解码没什么区别,但是当我在别的空间里面显示这个InputMap的时候,cpu占用就会变得很厉害,显示过程是,将界面的Image的source=InputMap,这个cpu占用的很厉害
解决方案
解决方案二:
BackgroundWorkerbgworker;byte[]ImageBuffer;Int32RectnewRect;intstride;publicWriteableBitmapInputMap;voidbgworker_DoWork(objectsender,DoWorkEventArgse){……unsafe{……InputMap.Dispatcher.Invoke(newAction(()=>{InputMap.WritePixels(newRect,ImageBuffer,stride,0,0);}));doublenum=0;}System.Threading.Thread.Sleep(10);}……}这个是解码更新writeablebitmap的代码,我在别的控件上就是直接Image.Source=InputMap
解决方案三:
求助啊,我用绑定的方式更新图片也是占用很多cpu,不知道用什么方法比较好了
解决方案四:
因为会显示大量的摄像头图像,所以显示图像带来的cpu占用肯定是不能接受的
时间: 2024-08-21 17:15:33