[Ayuda] Abrir fichero de imagen en c

Iniciado por Mioshi, 14 Enero 2014, 19:10 PM

0 Miembros y 1 Visitante están viendo este tema.

x64core

#10
@Mioshi: Para abrir un archivo con las funciones fopen, etc no tiene nada que ver el tipo de archivo. y ya que lo que necesitas es un ejemplo de como leer archivos y saber como usar las funciones aqui esta un pequeño tutorial bastante claro de como usarlas:
http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C/Manejo_de_archivos

Por cierto, @vangodp evita publicar tanto post en un tema y más si son totalmente inutiles y ni siquiera se sabe lo que se esta hablando.

vangodp

Has probado compilar O Gran X64 ¬¬
Ya vaya ayuda has prestado tu.
Ya le has resuelto la vida con el enlace vaya ayuda.

x64core

Cita de: vangodp en 14 Enero 2014, 21:06 PM
Has probado compilar O Gran X64 ¬¬
Ya vaya ayuda has prestado tu.
Ya le has resuelto la vida con el enlace vaya ayuda.

En realidad desde un princio el usuario buscaba ayuda de como abrir archivos y ejemplos. En el enlace hay muy simple ejemplo y explicación.
Creo que el que deberia aprender a leer bien los temas eres tu y evitar de publicar tanta basura.

vangodp

Que ejemplo?
Lo ha puesto en su primer post?
¿Donde?
No jodas compañero.
Aprende a decir las cosas en condiciones que te va mejor.
Como mucho puede que somos 2 desentendidos.
Si explicas a la gente así vas de culo.

leosansan

#14
Cita de: x64Core en 14 Enero 2014, 20:49 PM
.....................................
Por cierto, @vangodp evita publicar tanto post en un tema y más si son totalmente inutiles y ni siquiera se sabe lo que se esta hablando.


* Lo de los archivos prefiero pasarlo por alto.  ;)

* Lo de tanto post te doy la razón en parte. Siempre se puede reeditar el post anterior si no hay nuevas contestaciones. A no ser que se vaya a hacer una aportación nueva y/o distinta.

* Si no sabe de que habla y tú si, aclarase lo y así ayudas. Porque la culpa nace del post original:


Cita de: Mioshi en 14 Enero 2014, 19:10 PM
Hola comunidad, hoy me dejaron un proyecto en TC20. El proyecto se basa en abrir ficheros y modo grafico..
....................

* Habla de modo gráfico y eso es lo que ha llevado a confusión al amigo vangodp, al no haberse fijado en lo que dice anteriormente que trabaja, si se puede llamar así al uso de ese programa, con Turbo C y que éste incluye de forma nativa modo gráfico, por lo que no le es necesario el uso de librerías externas, como se imaginaba vangodp. Al menos intento alguna solución a lo que entendió y eso siempre es de agradecer. :rolleyes:

Como ves, cuesta poco aclara el malentendido y se evitan malos rolllos.

Y esto que te expongo es en plan de buen rollito. ;) ;) ;)



¡¡¡¡ Saluditos! ..... !!!!



Cita de: x64Core en 14 Enero 2014, 21:13 PM
.....................................
Creo que el que deberia aprender a leer bien los temas eres tu y evitar de publicar tanta basura.
.........................................................

P.D: Habría que repasar tus post a ver donde encontramos más basura. Creo que te has pasado un pelín. :silbar: :silbar: :silbar:

vangodp

#15
Pues samsam, tu tienes clase.
Desconozco el borland compañero.
Pero que la gente venga a decir sandeces que lo que pones es inutil y tal tal tal.
Que se de un paceito ya te digo.
Me di cuenta lo de la librería que no podía compilar.
Joe que uno no se puede equivocar aquí que te comen a bocal.
Si me dice que no ponga tanto post hasta te le doy la razón.
As veces soy pesado con tal de intentar ayudar la gente.
Pero ya no es la primera vez que me vienen atacar en este foro.
¿Donde esta el compañerismo aquí?
Ya me chupe 2 ataques de compañeros aquí, y este es el 3º.

amchacon

Cita de: Mioshi en 14 Enero 2014, 19:10 PMtengo entendido que solo se pueden abrir imagenes con extension .bmp
El lenguaje no te limita a nada, tú puedes abrir cualquier archivo que se te ocurra siempre que sepas como funciona. Lo que pasa esque el BMP tiene un funcionamiento "relativamente" sencillo.

Te pongo comentarios en el código, pero sin saber como funciona un BMP te vas a liar:
Código (cpp) [Seleccionar]

int muestraBMP(int x, int y, char* NomArchivo)
{
    int b,a;
    BMP Obj; // una estructura que contiene todos los datos de la cabecera

    unsigned char* Datas;
    int in=0;
    unsigned char c=0;
    FILE * fp;

    fp = fopen(NomArchivo,"rb"); // abrimos el archvio en cuestion

    // si no se encuentra, mostramos un mensaje de error y abortamos el progama

    if(!fp){   
    printf("Error : No se puede abrir el archivo ...");
getch();
    exit(0);
    }

    // leemos la "cabecera" del BMP

    fread(&Obj, sizeof(Obj), 1, fp);
   
    /* Este código está preparado para leer imagenes en 16 colores. Cualquier imagen que quieras
    usar de prueba debe guardarse en esos colores.
   
    El if siguiente comprueba esto y muestra un mensaje de error en el caso contrario */

    if(Obj.BitsPerPixel!=4)  /* Este NO es un bmp de 16 colores que podamos leer*/
    {
     fclose(fp);
     printf("Error : Formato de archivo no soportado...");
getch();
     exit(0);
    };

    /* Unos de los parametros de la firma BMP indica la posición del archivo donde comienzan los datos de imagen, se coge ese parametro y se avanza a esa posición */

    fseek(fp,Obj.OffSet,SEEK_SET);

    // Se reservan los suficientes datos para una fila de la imagen

    Datas=(unsigned char*) calloc(Obj.Width/2+1, sizeof(unsigned char));

   // Guardamos los datos de la imagen

    for(b=Obj.Height;b>=0;b--)
    {
     fread(Datas, sizeof(unsigned char), Obj.Width/2, fp); // Leemos una fila de la imagen
     c=0;
     in=0;
     for(a=0;a<=Obj.Width;a+=2)
     {
c = (Datas[in] | 0xF0) & 0x0F; //cogemos el dato relativo al primer pixel
         putpixel(a+1+x,b+y,c); // pintamos un pixel
         c = (Datas[in] | 0x00) >>4; // cogemos el dato relativo al segundo pixel
         putpixel(a+x,b+y,c); // pintamos el otro pixel (cada byte = 2 pixeles).
         in++;
     }
    }

    // liberamos memoria, cerramos el archivo y devolvemos un 1 para indicar que todo fue correcto

    free (Datas);
    fclose(fp);
    return 1;
}


Decirte además que Turbo C está muerto desde hace 10 años y que no deberías focalizar tu aprendizaje en esas cosas.
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

x64core

Cita de: vangodp en 14 Enero 2014, 21:20 PM
Que ejemplo?
Lo ha puesto en su primer post?
¿Donde?
No jodas compañero.
Aprende a decir las cosas en condiciones que te va mejor.
Como mucho puede que somos 2 desentendidos.
Si explicas a la gente así vas de culo.

Bueno entonces no es problema mio si nisiquiera puedes mirar los codigos fuentes que hay en el enlace que publique. Aquí el unico desentendido eres tu, quien ni siquiera sabe leer un tema.


Cita de: leosansan en 14 Enero 2014, 21:23 PM
* Lo de los archivos prefiero pasarlo por alto.  ;)
Piensas explicar?

Cita de: leosansan en 14 Enero 2014, 21:23 PM

* Si no sabe de que habla y tú si, aclarase lo y así ayudas. Porque la culpa nace del post original:

El post original no tiene la culpa, realmente el post original fue claro, necesita ayuda de como abrir archivos y ejemplos. más disputas sobre algo especifico vendrian.

Cita de: leosansan en 14 Enero 2014, 21:23 PM
P.D: Habría que repasar tus post a ver donde encontramos más basura. Creo que te has pasado un pelín. :silbar: :silbar: :silbar:
Pues si nos la vamos a medir apuesto a que tengo menos basura que los dos.



vangodp

#18
Y sigue.
Bua ahí te quedas 64.
Eres peor que un niño. :P
Por cierto amchacom. 16 colores es lo mismo que 16 bits o como va eso?   :huh:

PD:Ya lo encontré en un post tuyo creo al cual le destripas un BMP :D
4bits=16 colores.

Es bastante baja resolución ¿no?

x64core

Cita de: vangodp en 14 Enero 2014, 21:54 PM
Y sigue.
Bua ahí te quedas 64.
Eres peor que un niño. :P
Creo que algo más estupido en el dia no pude haber leido.