From: Matan Ziv-Av (matan@svgalib.org)
Date: Thu 09 Nov 2000 - 21:57:13 IST
On Thu, 9 Nov 2000, Remenic wrote: > Has anyone written code before that makes a screenshot of the current > physicalscreen, and saves it to a file(png, or anything)? Here's one that writes the sceen (size heigh*width) in 16 or 24 bits to ppm (P6 format). writeppm(FILE * file) { int y; unsigned char tmp[8192], tmp2[8192]; int i, j, k; fprintf(file, "P6\n%i %i\n255\n", width, height); for (y = 0; y < height; y++) { vga_getscansegment(tmp, 0, y, width * bpp); switch (bitspp) { case 16: for (i = 0; i < width; i++) { j = tmp[i * 2] + 256 * tmp[i * 2 + 1]; tmp2[i * 3] = (j & 0xf800) >> 8; tmp2[i * 3 + 1] = (j & 0x7e0) >> 3; tmp2[i * 3 + 2] = (j & 0x1f) << 3; }; break; case 24: memcpy(tmp2, tmp, width * 3); break; }; fwrite(tmp2, width * 3, 1, file); }; }; -- Matan Ziv-Av. matan@svgalib.org ------------------------------------------------------------------ Unsubscribe: To: listbot@svgalib.org Body: unsubscribe linux-svgalib
This archive was generated by hypermail 2.1.4 : Wed 21 Jan 2004 - 22:10:23 IST