• Sábado 21 de Diciembre de 2024, 09:54

Autor Tema:  Como abrir una imagen  (Leído 2895 veces)

trio09

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Como abrir una imagen
« en: Viernes 7 de Mayo de 2004, 22:52 »
0
Hola disculpen, mieren me llamo Jaime Ortega , soy de Cd,Mante,Mexico

y pues tengo duda sobre que es el ALLEGRO, me interesaria saber, si no es mucha molesta explicarme verbemente para que funciona y como, aunque mi inquietud en este momento es saber como pasar una imagen bmp o jpg a borland c++ en codigo fuente para que al ejecutar el programa salga la imgen en el ejecutable, si me pueden explicar eso, les estaria muy agradecido, soy estudiante de INGENIERIA EN SISTEMAS y pues curso 2do y me serviria de mucho su ayuda
gracias, por favor responderme a a2033520297@uat.edu.mx
mil gracias

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Como abrir una imagen
« Respuesta #1 en: Sábado 8 de Mayo de 2004, 02:04 »
0
para hacer videojuegos y software multimedia
como? con lenguaje c y assembler.. y algo de directx en la version para win32
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

trio09

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re: Como abrir una imagen
« Respuesta #2 en: Martes 11 de Mayo de 2004, 06:07 »
0
lo unico que quiero hacer es pasar una imagen de bmp a borlandc, en windows,
usando el cont vga en modo 2, ya que solo es de 16 colores,, ncesito de un programa, para hacer eso, o siemplemete un comando, y si es asi cual es?
gracias

piyey

  • Miembro MUY activo
  • ***
  • Mensajes: 101
  • Nacionalidad: ni
    • Ver Perfil
    • Piyeycorp® - La imaginación es el límite
Re: Como abrir una imagen
« Respuesta #3 en: Viernes 20 de Agosto de 2004, 04:10 »
0
Hola trio09, estoy leyendo tu mensaje en la universidad donde estudio, por tal razon no tengo a mano la funcion de cargar un bmp en c, pero si tengo la de cargar un archivo PCX. Si quieres probarlo aqui te lo pongo...


Código: Text
  1.  
  2. /*
  3.     Para probar este ejemplo te recomiendo que inicies grafica con
  4.     256 colores, si tienes alguna duda escribeme a:
  5.  
  6.         piyeysomarriba@hotmail.com
  7.  
  8.     o bien visita mi pagina web en:
  9.  
  10.         piyey.webcindario.com (Por ahora esta en construccion)
  11. */
  12.  
  13. #include <dos.h>
  14. #include <mem.h>
  15. #include <stdlib.h>
  16. #include <conio.h>
  17. #include <stdio.h>
  18. #include <graphics.h>
  19.  
  20. typedef struct
  21. { int r,g,b;}MIPALETA;
  22.  
  23. #pragma option -w-
  24. void cargaPCX(int x,int y,char *archivo,int desp)
  25. {
  26.   // Variables utilizadas:
  27.  
  28.   FILE *pf;
  29.   char cabecera[128];
  30.   char fabricante, version, codificado, bpp;
  31.   int xm, ym, xM, yM, resh, resv;
  32.   char planos, bpl, tpaleta;
  33.   unsigned seg;
  34.   long tamanyo;
  35.   char valor;
  36.   int i, j;
  37.   unsigned char codigo;
  38.   unsigned char salir;
  39.   MIPALETA paleta[256];
  40.   char longitud;
  41.  
  42.   // Abrimos el archivo y leemos la paleta:
  43.   pf=fopen(archivo,"rb");
  44.   fseek (pf, 0, SEEK_END);
  45.   tamanyo = ftell (pf);
  46.   fseek (pf, tamanyo-769, SEEK_SET);
  47.   valor = getc(pf);
  48.   if (valor == 0xC)
  49.   { outportb(0x3c8, 0);// setea la paleta de colores
  50.     for(i = 0; i < 256; i++)
  51.     { outportb(0x3c9, getc(pf)/4);
  52.       outportb(0x3c9, getc(pf)/4);
  53.       outportb(0x3c9, getc(pf)/4);
  54.     }
  55.   }
  56.  
  57.   rewind(pf);
  58.   fread (cabecera, sizeof(char), 128, pf); /* leo del tir¢n la cabecera */
  59.   fabricante = cabecera[0];
  60.   version = cabecera[1];
  61.   codificado = cabecera[2];
  62.   bpp = cabecera[3];
  63.   seg = FP_SEG (cabecera);
  64.   movedata (seg, FP_OFF(&cabecera[4]), FP_SEG(&xm), FP_OFF(&xm), 2);
  65.   movedata (seg, FP_OFF(&cabecera[6]), FP_SEG(&ym), FP_OFF(&ym), 2);
  66.   movedata (seg, FP_OFF(&cabecera[8]), FP_SEG(&xM), FP_OFF(&xM), 2);
  67.   movedata (seg, FP_OFF(&cabecera[10]), FP_SEG(&yM), FP_OFF(&yM), 2);
  68.   movedata (seg, FP_OFF(&cabecera[12]), FP_SEG(&resh), FP_OFF(&resh), 2);
  69.   movedata (seg, FP_OFF(&cabecera[14]), FP_SEG(&resv), FP_OFF(&resv), 2);
  70.   planos = cabecera[65];
  71.   movedata (FP_SEG(cabecera), FP_OFF(&cabecera[66]), FP_SEG(&bpl), FP_OFF(&bpl), 2);
  72.   movedata (FP_SEG(cabecera), FP_OFF(&cabecera[68]), FP_SEG(&tpaleta), FP_OFF(&tpaleta), 2);
  73.  
  74.   setviewport(x,y,getmaxx()-1,getmaxy()-1,1);
  75.   x=0,y=0;
  76.  
  77.   salir=0;
  78.   while (!salir)
  79.   { fread (&codigo, sizeof(char), 1, pf);
  80.     if (codigo >= 192)
  81.     { longitud = (codigo & 63);
  82.       fread (&codigo, sizeof(char), 1, pf);
  83.     }
  84.     else
  85.      longitud = 1;
  86.  
  87.     for (i = longitud; i >= 1; i--)
  88.     { // Se supone puntero_pcx definido y con su memoria reservada y todo.
  89.       // pinta_punto(x,y,codigo,puntero_pcx);
  90.       putpixel(x,y,codigo);
  91.  
  92.       x++;
  93.       if (x > xM - xm + desp)
  94.       { x = xm;
  95.   y++;
  96.        if (y > yM - ym)
  97.    salir = 1;
  98.       }
  99.     }
  100.   }
  101.   setviewport(0,0,getmaxx()-1,getmaxy()-1,1);
  102. }
  103. #pragma option -w
  104.  
  105. int main(void)
  106. {
  107.    int gdriver = DETECT, gmode, errorcode;
  108.  
  109.    // Sustituye esta parte del codigo para iniciar modo grafico
  110.    // con 256 colores si quieres colocar
  111.    // una imagen con 256 colores...
  112.  
  113.    initgraph(&gdriver, &gmode, "C:\\TC\\BGI");
  114.    errorcode = graphresult();
  115.    if (errorcode != grOk)
  116.    {
  117.       printf("Graphics error: %s\n", grapherrormsg(errorcode));
  118.       printf("Press any key to halt:");
  119.       getch();
  120.       exit(1);
  121.    }
  122.  
  123.    setfillstyle(1,7);
  124.    bar(0,0,getmaxx()-1,getmaxy()-1);
  125.  
  126. //Deben estar las imagenes en la ubicacion correcta
  127.  
  128.    if(getmaxx()+1==640&&getmaxy()+1==480)
  129.    { cargaPCX(0,0,"Logo.pcx",0); }
  130.    if(getmaxx()+1==800&&getmaxy()+1==600)
  131.    { cargaPCX(0,0,"Logo8x6.pcx",0); }
  132.  
  133.    getch();
  134.    closegraph();
  135.    return 0;
  136. }
  137.  
  138.  


Espero te sea de utilidad... otro dia que tenga a mano la de cargar BMP con gusto te lo paso...


See you soon!!!

Piyey
Si no vives para servir...
no sirves para vivir.


No soy el dueño del mundo...
pero si el hijo del dueño.


Entre la linea que divide la realidad de la ilusión...
se encuentra la imaginación

IlusionLand - Piyey