GLubyte *ra = malloc(Size*(Size+3)); //Size*Size = amount of pixels, using 24 bit/pixel . . /*ra gets its values*/ . BITMAPINFO bpinf; bpinf.bmiHeader.biSizeImage = 0; bpinf.bmiHeader.biWidth = Size; bpinf.bmiHeader.biHeight = Size; bpinf.bmiHeader.biBitCount = 24; bpinf.bmiHeader.biCompression = BI_RGB; bpinf.bmiHeader.biPlanes = 1; bpinf.bmiHeader.biClrUsed = 0; bpinf.bmiHeader.biClrImportant = 0; bpinf.bmiHeader.biXPelsPerMeter = 2835; bpinf.bmiHeader.biYPelsPerMeter = 2835; SaveDIBitmap("Test.bmp", &bpinf, ra);