def save_screenshot(self, path, *args, **kwargs): import PIL.Image w, h = self.window.size GL.glReadBuffer(GL.GL_FRONT) data = GL.glReadPixels(0, 0, w, h, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE) image = PIL.Image.frombytes(mode="RGBA", size=(w, h), data=data) image = image.transpose(PIL.Image.FLIP_TOP_BOTTOM) image.save(path, 'PNG')