[quote=引用 3 楼 lindexi_gd 的回复:] 1. 用 Bitmap 接收可以放在另外线程,这部分可以减少主线程卡顿 2. 返回 jpg 是因为渲染 jpg的性能相对快一点 3. 使用 WriteableBitmap 是刷新需要更改的地方,通过修改像素和问题 2 相同,需要你先计算哪些需要刷新
1. 用 Bitmap 接收可以放在另外线程,这部分可以减少主线程卡顿 2. 返回 jpg 是因为渲染 jpg的性能相对快一点 3. 使用 WriteableBitmap 是刷新需要更改的地方,通过修改像素和问题 2 相同,需要你先计算哪些需要刷新
每次都更改一个图片,如果这个图片是十分大的图片,当然此时的渲染将会很卡了 有一个方法是构建图片和显示图片放在不同的线程,这样能提升一定的性能 将 BitmapImage 的构建到 EndInit 放在另一个线程,注意调用 Freeze 方法,然后放在主线程显示,此时将可以使用两个线程做图片解析和显示,预计能提升一些性能。另外对于图片解析来说,大部分的显卡都有对 jpg 的加速,刚好 WPF 是能用上这部分加速的,从性能提升的角度上说,如果能返回 jpg 会更好。其次,如果每次不是全量的图片刷新,也能提升一些速度,加入每次只是返回增量的部分,通过 WriteableBitmap 的方式刷新部分,也能做到比较好的性能。我就是通过 WriteableBitmap 的形式刷新一个垃圾厂商给的摄像头的内容,轻松在垃圾的cpu上刷新到了60赫兹
8,737
社区成员
12,029
社区内容
加载中
试试用AI创作助手写篇文章吧