如何在图片框上绘图时避免使用位图

时间:2011-12-01 15:18:49

标签: c# bitmap

我正在编写一个C#程序来显示音频信号,我接下来成功了,

  1. 我将图片框放在表格上的滚动面板上。
  2. 对PCM数据进行采样并制作位图并将其放在图片框上。
  3. 但最近我发现位图的大小限制在C#(2 ^ 16像素)。因此,使用位图对象无法显示长音频文件。

    我正在寻找替代解决方案(直接绘制到图片框)。有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:1)

您可以创建自己的控件,而不是使用PictureBox。例如,从Control派生并覆盖OnPaintXXX事件。

然后,您可以将示例信息传递给控件并让它重新绘制。为了加快速度,您可能还会以大块的形式进行绘画。我的意思是:将要绘制的区域划分为多个矩形,将所有矩形(线程?)绘制成位图,并将位图绘制到相应的位置。

答案 1 :(得分:-1)

我不知道你从哪里获得这些信息。来自MSDN: http://msdn.microsoft.com/en-us/library/system.windows.media.imaging.bitmapsource.aspx

  

图像的最大高度和宽度为2 ^ 16像素,每通道32位* 4通道。 BitmapSource的最大大小为2 ^ 32字节(64千兆字节),最大图像大小为4千兆像素。最小图像尺寸为1x1。

我怀疑你读过"最大宽度和高度" as"最大尺寸"它不是。它是沿一个方向的最大像素数。