[PyOpenGL-Users] Format of New glReadPixels
Brought to you by:
mcfletch
|
From: Ian M. <ia...@ge...> - 2013-06-29 22:44:59
|
Hi,
The return value of glReadPixels seems to have changed since Py 2.5. To
take a screenshot, one used to be able to go:
data = glReadPixels(0,0,screen_size[0],screen_size[1], GL_RGB,
GL_UNSIGNED_BYTE)
image = pygame.image.fromstring(data,screen_size,"RGBA",True)
pygame.image.save(image,"screenshot.png")
This doesn't work anymore. It returns some data type that seems to
encapsulate a 3D array. I wasn't able to track down where this datatype was
defined. My best effort to reverse engineer it was unsuccessful (the output
is garbled):
data = glReadPixels(0,0,screen_size[0],screen_size[1], GL_RGB,
GL_UNSIGNED_BYTE)
r,g,b = data[0],data[1],data[2]
image = pygame.Surface(screen_size)
for y in range(screen_size[1]):
for x in range(screen_size[0]):
image.set_at((x,screen_size[1]-y-1),(r[y][x],g[y][x],b[y][x]))
pygame.image.save(image,"screenshot.png")
What is the return value format of glReadPixels?
Thanks,
Ian
|