elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [Ayuda] Abrir fichero de imagen en c
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: [Ayuda] Abrir fichero de imagen en c  (Leído 14,520 veces)
Mioshi

Desconectado Desconectado

Mensajes: 23



Ver Perfil
[Ayuda] Abrir fichero de imagen en c
« 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. Lo que me preocupa es la parte de abrir el fichero de una imagen, tengo entendido que solo se pueden abrir imagenes con extension .bmp pero no se como hacerlo. Si alguien me puede ayudar con un codigo de ejemplo se lo agradeceria mucho.

Espero su respuesta y muchas gracias de antemano.


En línea

vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: [Ayuda] Abrir fichero de imagen en c
« Respuesta #1 en: 14 Enero 2014, 19:42 pm »

Si no te han dicho que librería usar puedes optar por una como SDL.
Y si le añades SDL_image si que puedes abrir cualquier formato.
Y ademas es relativamente fácil.
Descargas las librerías de SDL, añades al IDE y a la carpeta donde va el .exe añades una dll o según el tipo de imagen que vayas cargar(jpg, tga, bmp...) mas de una dll(una dll por cada tipo de imagen extra a parte de la bmp).
SDL trabaja con bmp, si quieres estos otros formatos necesitas una especie de extensión que te permite cargar los otros formatos.
No se si hay alguna librería mas a mano, SDL es como matar moscas a cañonazo no se XD
Es una librería multimedia, te sirve para hacer aplicaciones, videojuegos, sonidos, gestionar entrada salida, joystick, red todo.
cargar una imagen es fácil, mas difícil es configurar la librería pero tampoco es un bicho de 7 cabezas.
Si te interesa dímelo y te echo una mano.
 ::)




En línea

Mioshi

Desconectado Desconectado

Mensajes: 23



Ver Perfil
Re: [Ayuda] Abrir fichero de imagen en c
« Respuesta #2 en: 14 Enero 2014, 20:16 pm »

hola, gracias por responder pero no entiendo mucho lo que me estas tratando de explicar, estoy empezando a programar en c y pues no se si me puedas ayudar con un ejemplo especifico

Código:
#include <alloc.h>
#include <conio.h>
#include <graphics.h>
#include <stdio.h>
#include <stdlib.h>


typedef struct
{
  char Type[2];           /*Tipo de archivo. establecido en "BM".*/
  unsigned long Size;     /*Tamano en BYTES del archivo*/
  unsigned long Reserved;      /*Reservado. establecido en cero*/
  unsigned long OffSet;   /*Desplazamiento hacia datos*/
  unsigned long headsize; /*Tamaño de la cabecera del bitmap. establecido en 40.*/
  unsigned long Width;     /*Anchura en  pixeles.*/
  unsigned long Height;     /* Altura en pixeles.*/
  unsigned int  Planes;    /*Numero de Planos. establecido en 1.*/
  unsigned int  BitsPerPixel;       /*Numero de Bits por pixeles.*/
  unsigned long Compression;   /*Compresion. Usually establecido en 0.*/
  unsigned long SizeImage;  /*Tamano en BYTES del bitmap.*/
  unsigned long XPixelsPreMeter;     /*Pixeles Horizontales por metro.*/
  unsigned long YPixelsPreMeter;     /*Pixeles Verticales por metro.*/
  unsigned long ColorsUsed;   /*Numero de colores utilizados.*/
  unsigned long ColorsImportant;  /*Numero de colores "Importantes".*/
}BMP;

int muestraBMP(int x, int y, char* NomArchivo);
void main()
{
int color;
int gd , gm ;
gd = VGA ; gm = VGAHI;
clrscr();
initgraph(&gd,&gm,"C:\TC20\BIN");
muestraBMP(0,0,"pez.bmp"); /* Ingresa el nombre y direccion del archivo aqui */
getch();
closegraph();
}

int muestraBMP(int x, int y, char* NomArchivo)
{
    int b,a;
    BMP Obj;

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

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

    fread(&Obj, sizeof(Obj), 1, fp);
    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);
    };
    fseek(fp,Obj.OffSet,SEEK_SET);
    Datas=(unsigned char*) calloc(Obj.Width/2+1, sizeof(unsigned char));
    for(b=Obj.Height;b>=0;b--)
    {
     fread(Datas, sizeof(unsigned char), Obj.Width/2, fp);
     c=0;
     in=0;
     for(a=0;a<=Obj.Width;a+=2)
     {
c = (Datas[in] | 0xF0) & 0x0F;
         putpixel(a+1+x,b+y,c);
         c = (Datas[in] | 0x00) >>4;
         putpixel(a+x,b+y,c);
         in++;
     }
    }
    free (Datas);
    fclose(fp);
    return 1;
}

Este es un codigo que me paso una amiga, pero no me corre muy bien, no se que estoy haciendo mal
En línea

vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: [Ayuda] Abrir fichero de imagen en c
« Respuesta #3 en: 14 Enero 2014, 20:27 pm »

¿Que IDE usas?
¿Windos?
En línea

Mioshi

Desconectado Desconectado

Mensajes: 23



Ver Perfil
Re: [Ayuda] Abrir fichero de imagen en c
« Respuesta #4 en: 14 Enero 2014, 20:28 pm »

sip window
En línea

vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: [Ayuda] Abrir fichero de imagen en c
« Respuesta #5 en: 14 Enero 2014, 20:29 pm »

Que compilador usas?
Yo uso codeblocks y me esta tirando errores por que no incluye estas librerias de graficos
En línea

Mioshi

Desconectado Desconectado

Mensajes: 23



Ver Perfil
Re: [Ayuda] Abrir fichero de imagen en c
« Respuesta #6 en: 14 Enero 2014, 20:30 pm »

TC20 o turbo c 2.0
En línea

vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: [Ayuda] Abrir fichero de imagen en c
« Respuesta #7 en: 14 Enero 2014, 20:30 pm »

Basicamente estas 2 no las encuentra

#include <alloc.h>
#include <graphics.h>
En línea

vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: [Ayuda] Abrir fichero de imagen en c
« Respuesta #8 en: 14 Enero 2014, 20:31 pm »

No te voy a poder ayudar.
No tengo turbo c :(
En línea

vangodp


Desconectado Desconectado

Mensajes: 455



Ver Perfil
Re: [Ayuda] Abrir fichero de imagen en c
« Respuesta #9 en: 14 Enero 2014, 20:33 pm »

por lo que veo la imagen debe estar junto en la carpeta y llamar la imagen de pez.bmp XD
Si te tira errores pon el aviso aqui a ver si averiguamos que le pasa

En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
common dialog abrir/seleccionar mas de un fichero
Programación Visual Basic
luiski 3 2,131 Último mensaje 13 Octubre 2006, 07:48 am
por luiski
Abrir (Ejecutar) un archivo (fichero) contenido en un Jar
Java
1mpuls0 5 8,857 Último mensaje 8 Noviembre 2009, 17:01 pm
por 1mpuls0
Abrir último fichero modificado de un directorio
GNU/Linux
TheMaker 3 6,874 Último mensaje 30 Julio 2010, 23:43 pm
por [u]nsigned
Duda abrir fichero c++ « 1 2 »
Programación C/C++
Stakewinner00 11 6,577 Último mensaje 31 Enero 2013, 18:10 pm
por Stakewinner00
Problema abrir fichero en ruta distinta
Desarrollo Web
astrojohan 1 2,003 Último mensaje 21 Diciembre 2017, 19:26 pm
por Tusso4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines