poseidonzhou说的那个glReadPixels()是读取帧缓存的像素,楼主是要读取纹理的像素,我觉得不能用glReadPixels()。或者还请poseidonzhou具体解释一下。
读纹理的像素的办法是glGetTexImage(),具体信息在下面:
http://msdn.microsoft.com/en-us/library/dd373557(VS.85).aspx
它把纹理的图像读取到一片内存区域中,然后直接访问这片内存就可以了。如果要访问中心的像素的话,还需要知道图片的大小,通过glGetTexLevelParameter()就可以知道图片的大小:
http://msdn.microsoft.com/en-us/library/dd373558(VS.85).aspx
不过OpenGL本身没有对图像文件格式的支持,OpenGL调入纹理图片还是要靠Windows或者第三方的库。Windows GDI本身支持BMP格式,所以实际上要读取BMP图片的像素还是用GDI更直接,像上面那样通过OpenGL来实现反而是绕路。用GDI函数GetPixel()就可以:
http://msdn.microsoft.com/en-us/library/dd144909(VS.85).aspx