La Web del Programador: Comunidad de Programadores
 
    Pregunta:  1197 - GESTIONAR EL CONTENIDO DE UNA PANTALLA GRAFICA
Autor:  Kleber Posligua
Tengo una duda espero me puedas ayudar:
Como puedo en C/C++, copiar el contenido de una pantalla gráfica y luego enviarla a un fichero o la impresora, o cargar estos datos del fichero al
monitor. Resulta que estoy trabajando en modo gráfico
y hago unos dibujitos pero se me pierden al no saber
como guardalos en ficheros.

  Respuesta:  José Luis Torres Pantoja
Saludos desde México.
No es tan difícil solucionar tu problema y existen varias opciones, la primera y más sencilla es leer pixel a pixel tu pantalla e ir guardando en archivo:

FILE *arch;
char color;
int i,j;
arch=fopen("dib.img","wb+");
for(j=0;jfor(i=0;i{
color=getpixel(i,j);
fwrite(&color,sizeof(char),1,arch);
}
fclose(arch);

Por otra parte, si estás dibujando círculos, rectángulos, líneas, etc. lo más conveniente es que sólo guardes la información necesaria para reconstruir cada una de estas figuras. Si deseas saber mas acerca de esto o de más métodos para solucionar tu problema tal vez yo te pueda ayudar, mándame un correo

  Respuesta:  Matias Surdi
Bueno, en este momento no recuerdo exactente como es eso, pero lo he hecho a principio de año y algo recuerdo:
Una vez que tienes el grafico en tu pantalla, puedes hacer un bucle que lea line a linea todos los pixels y guardarlos en un archivo, po ejemplo:

for(i=1;i!=480;++i) {
for(i2=1;i2!=640;++i2){
array[i-1][i2-1]=getpixel(i2,i);
}
}

luego, tendras en la matriz "array" todos los puntos de la pantalla y su atributo de color....

si necesitas mas alluda, no dudes en mandarme un mail....
Suerte con esos graficos!!!!!

Matias [email protected]