实时图形绘制(波形)

时间:2012-02-28 17:24:26

标签: c# .net winforms .net-4.0 drawing

我希望将来在C#.NET 4.0中做一些带音频的项目,所以我收集了一些用于录音的代码示例,使用WAVE文件等。但是我找不到的是:

如何实时绘制音频波形/频谱图(ish)?显然,创建内存中的位图并将其加载到图片框中会非常慢,对吧?那么,最简​​单的方法是什么?

谢谢!

2 个答案:

答案 0 :(得分:1)

您可以使用基于GDI +的Graphics and Drawing in Windows Forms直接绘制内容。这将比渲染到位图并在图片框中显示不断变化的内容快得多。

答案 1 :(得分:1)

直接在合适的控制面上涂漆,即面板。获取控件的图形上下文,并使用Invalidate()函数在Paint事件中更新它。每次无效时,都会自动调用Paint。这是您想要绘制逻辑的地方。

更新它的最佳方法是使用DrawImageUnscaled()。图像本身使用LockBits方法制作得最快,在这里解释得非常好:

http://www.bobpowell.net/lockingbits.htm