实时图形绘制(波形)
本文关键字:波形 绘制 图形 实时 | 更新日期: 2023-09-27 18:26:00
我想在未来用C#.NET 4.0做一些音频项目,所以我收集了一些用于音频录制、使用WAVE文件等的代码样本。但我找不到的是:
如何实时绘制音频波形/频谱图?显然,创建内存中的位图并将其加载到图片框中会非常缓慢,对吧?那么,最简单的方法是什么?
谢谢!
您可以在Windows窗体中使用基于GDI+的图形和绘图直接绘制内容。这将比渲染为位图并在图片框中显示不断变化的内容快得多。
只需直接在合适的控制表面(即面板)上绘制即可。获取控件的图形上下文,并使用Invalidate()函数在Paint事件中更新它。每次无效时,"绘制"都会自动调用。这是您想要放置绘图逻辑的地方。
更新它的最佳方法是使用DrawImageUnsaled()。图像本身是用LockBits方法制作得最快的,这里有很好的解释:
https://web.archive.org/web/20141229164101/http://bobpowell.net/lockingbits.aspx