我想将我的“屏幕”保存在 bmp 中;但我认为我做错了,因为这段代码真的很慢:
HDC Win = GetDC(NULL);
for (j = 0; j < y; j++)
for (i = 0; i < x; i++)
img->data[j][i] = GetPixel(Win, i, j);
我想将我的“屏幕”保存在 bmp 中;但我认为我做错了,因为这段代码真的很慢:
HDC Win = GetDC(NULL);
for (j = 0; j < y; j++)
for (i = 0; i < x; i++)
img->data[j][i] = GetPixel(Win, i, j);
CreateDIBSection
使用指向原始位的指针创建位图,并BitBlt
从屏幕进入创建的位图。这比逐像素查询更快,并且您可以使用常规指针访问内存中的所有数据。
有关代码片段,请参阅在 Windows 中执行全屏抓取。