【发布时间】:2012-03-13 04:11:31
【问题描述】:
我有一个将捕获屏幕的应用程序,我想将捕获的信息写入一个数组,这需要 AGES,因为数组最终是 +200 万个值。我正在迭代并将值添加到数组中,有没有更快的方法(例如二进制操作)?应该这么慢吗?为什么会这样?
【问题讨论】:
我有一个将捕获屏幕的应用程序,我想将捕获的信息写入一个数组,这需要 AGES,因为数组最终是 +200 万个值。我正在迭代并将值添加到数组中,有没有更快的方法(例如二进制操作)?应该这么慢吗?为什么会这样?
【问题讨论】:
假设您的 GetPixel 逐个像素地显示屏幕,则它的 GetPixel 调用速度很慢(它询问显示驱动程序)而不是(预先确定的)数组分配。
您可以改用getdibits() api,它会在一次调用中将 DC 的颜色信息复制到缓冲区中。
Here is a C++ example,但方法和调用顺序与 VB 相同。
【讨论】:
弄清楚为什么它这么慢,这是因为我在循环的每次迭代中都使用了 ReDim - 无论如何感谢您的帮助
马丁
【讨论】: