首页 > 解决方案 > 有没有一种有效的方法可以在 Windows 窗体中每秒绘制 30 个位图?

问题描述

我现在正在从事一个科学项目,这是我人生中的第一次,而且从来不用处理效率问题。现在我有一个巨大的问题,我必须绘制的所有热图的计算都可以完美地工作,但是位图抽屉无法处理将 30 个位图绘制到图片框上。
有谁知道绘制位图的不同方法?它不必是一个图片框。
我知道有类似的问题,但它们都不适用于 Windows 窗体(我不得不选择 Windows 窗体而不是 WPF,因为这里需要很长时间才能解释的原因)。
这是我关于堆栈溢出的第一篇文章,如果我犯了错误,请原谅。
预先感谢您的帮助。
乔纳森

编辑:该应用程序是为使用 200Hz 的实时数据而构建的,因为大多数屏幕显然无法处理这个我只显示 30 FPS 并以 200Hz 记录日期,这也是为了补偿性能问题,但性能仍然很差。如果我有更好的显示帧的方式,我可能会选择大约 60FPS - 120FPS。
这些图像都像视频的单帧和 2x 500px 900px 像素大(2因为我同时有两个传感器,它们都为完整的热图提供数据)。我使用skiasharp 创建位图,因为我听说这是最有效的方法。
我希望我回答了所有被问到的问题。

标签: c#performancewinformsbitmapdraw

解决方案


我已经在内存中绘制位图了,但是 Ken White 的提示让我想到了在分配位图之前将其写入图像变量的想法,并且由于我不明白的原因它起作用了。一次绘图调用所需的时间减少了大约 50%。谢谢你的小费肯怀特。


推荐阅读