我正在为我的窗口系统使用 GLUT 将一些图像输出到屏幕上。我还想将图像输出到文件。这是一个挑战。在某些窗口分辨率(如 256x256、1024x1024、1920x1200)下,glReadPixels 会生成与屏幕完全相同的图像文件。但是,当我调整窗口大小(例如 / 655x652、529x566 并进行屏幕捕获时,图像会出现锯齿状,并且看起来像素已经线性移动。
任何帮助将不胜感激!
编辑 - 我正在添加一些导致 glReadPixels 调用的代码。
glGetIntegerv(GL_VIEWPORT, dimensions);
width = dimensions[2];
height = dimensions[3];
screencapture = (unsigned char*)malloc(width*height*sizeof(unsigned char));
glReadPixels(0,0,width, height, GL_GREEN, GL_UNSIGNED_BYTE, screencapture);
EDIT2 - 我忘了提到用鼠标调整窗口大小有时会产生好的图像。我想当我得到正确的分辨率时会发生这种情况。