我使用C ++为反恐精英开发了一个Antichat。这个AC需要截取屏幕并将它们上传到指定的服务器。 问题是在Win7 / Vista中,屏幕截图是黑色的。我在网上做了研究,但没有找到帮助我的东西。
我看到TAKSI的来源,测试所有版本和Taksi 0.3足够好而且不是很大但我无法调试源(http://sourceforge.net/projects/taksi/files/stable/taksi-0.3/taksi-0.3-src.zip/download)。当我用所有DirectX 9 SDK包括libs和STL调试这个时,我收到很多错误。 (我也阅读了Build.txt信息,并尝试使用Visual C ++ 2006,DC ++,Visual C ++ 2010)
我很熟悉C ++应用程序,我真的很想这样做。 如果有人可以为我提供帮助或简化taksi 0.3源代码(我只需要在OpenGL上截取小屏幕截图)并告诉我源代码将对我有很大帮助和CS社区。 p>
此外,如果没有人有时间为我简化0.3源代码,我将不胜感激,如果你能解释我如何调试(非常讲解txt :))
请帮帮我:P
答案 0 :(得分:0)
如果你可以进入OpenGL / GLUT显示回调函数,你可以在glutSwapBuffers();
之后的某个地方的函数末尾添加一个glReadPixels
的调用。接下来,如果应用程序还没有图像处理库,则需要以适当的格式将glReadPixels
填充的RGB图像缓冲区写入文件,可能使用IJG JPEG library。
int width = 1024; // would be better to get actual window dimensions
int height = 768;
unsigned char *img_rgb[width * height * 3]; // each pixel is three bytes (RGB)
...
glReadPixels(0,0, width,height, GL_RGB, GL_UNSIGNEDBYTE, img_rgb);