You can read pixels from the frame buffer into memory, encode them in various ways, and store the encoded result in memory with glReadPixels. In addition, you can copy a rectangle of pixel values from one region of the frame buffer to another with glCopyPixels. The function glReadBuffer controls which color buffer the pixels are read or copied from.