Thread: [PyOpenGL-Devel] Bug found in glReadPixels
Brought to you by:
mcfletch
From: Geert H. V. <gee...@gm...> - 2016-04-06 10:13:22
|
Hey guys, Just wanted to report a bug I found in glReadPixels which has caused me major annoyance yesterday. glReadPixels returns a numpy array with a specific datatype. I found out that the shape parameter given to this array has the rows and columns switched. This will not be a problem for most users, as the flattened array will be interpreted correctly. If one however does some operations on it, like transposes or left right swapping, this results in a corrupted image. For me there was an easy workaround by using: data = data.reshape((data.shape[1],data.shape[0])) However, it would be nice if this was fixed in future versions. It can be fixed in multiple points of the source code, like this line in OpenGL/GL/images.py: array = imageData = images.SetupPixelRead( format, (width,height), type ) Only width and height need to be swapped for it to work. I tested this on both a windows and a linux distribution but would like someone else to test it as well to rule out any stupidity. I believe the cause of the bug is the way OpenGL presents the array data is not consistent with the standard way numpy expects it. Kind regards, Geert Henk Visser |