Programación Específica > Allegro

 Como abrir una imagen

(1/1)

trio09:
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:
para hacer videojuegos y software multimedia
como? con lenguaje c y assembler.. y algo de directx en la version para win32

trio09:
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:
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 --- /*    Para probar este ejemplo te recomiendo que inicies grafica con    256 colores, si tienes alguna duda escribeme a:         piyeysomarriba@hotmail.com     o bien visita mi pagina web en:         piyey.webcindario.com (Por ahora esta en construccion)*/ #include <dos.h>#include <mem.h>#include <stdlib.h>#include <conio.h>#include <stdio.h>#include <graphics.h> typedef struct{ int r,g,b;}MIPALETA; #pragma option -w-void cargaPCX(int x,int y,char *archivo,int desp){  // Variables utilizadas:   FILE *pf;  char cabecera[128];  char fabricante, version, codificado, bpp;  int xm, ym, xM, yM, resh, resv;  char planos, bpl, tpaleta;  unsigned seg;  long tamanyo;  char valor;  int i, j;  unsigned char codigo;  unsigned char salir;  MIPALETA paleta[256];  char longitud;   // Abrimos el archivo y leemos la paleta:  pf=fopen(archivo,"rb");  fseek (pf, 0, SEEK_END);  tamanyo = ftell (pf);  fseek (pf, tamanyo-769, SEEK_SET);  valor = getc(pf);  if (valor == 0xC)  { outportb(0x3c8, 0);// setea la paleta de colores    for(i = 0; i < 256; i++)    { outportb(0x3c9, getc(pf)/4);      outportb(0x3c9, getc(pf)/4);      outportb(0x3c9, getc(pf)/4);    }  }   rewind(pf);  fread (cabecera, sizeof(char), 128, pf); /* leo del tir¢n la cabecera */  fabricante = cabecera[0];  version = cabecera[1];  codificado = cabecera[2];  bpp = cabecera[3];  seg = FP_SEG (cabecera);  movedata (seg, FP_OFF(&cabecera[4]), FP_SEG(&xm), FP_OFF(&xm), 2);  movedata (seg, FP_OFF(&cabecera[6]), FP_SEG(&ym), FP_OFF(&ym), 2);  movedata (seg, FP_OFF(&cabecera[8]), FP_SEG(&xM), FP_OFF(&xM), 2);  movedata (seg, FP_OFF(&cabecera[10]), FP_SEG(&yM), FP_OFF(&yM), 2);  movedata (seg, FP_OFF(&cabecera[12]), FP_SEG(&resh), FP_OFF(&resh), 2);  movedata (seg, FP_OFF(&cabecera[14]), FP_SEG(&resv), FP_OFF(&resv), 2);  planos = cabecera[65];  movedata (FP_SEG(cabecera), FP_OFF(&cabecera[66]), FP_SEG(&bpl), FP_OFF(&bpl), 2);  movedata (FP_SEG(cabecera), FP_OFF(&cabecera[68]), FP_SEG(&tpaleta), FP_OFF(&tpaleta), 2);   setviewport(x,y,getmaxx()-1,getmaxy()-1,1);  x=0,y=0;   salir=0;  while (!salir)  { fread (&codigo, sizeof(char), 1, pf);    if (codigo >= 192)    { longitud = (codigo & 63);      fread (&codigo, sizeof(char), 1, pf);    }    else     longitud = 1;     for (i = longitud; i >= 1; i--)    { // Se supone puntero_pcx definido y con su memoria reservada y todo.      // pinta_punto(x,y,codigo,puntero_pcx);      putpixel(x,y,codigo);       x++;      if (x > xM - xm + desp)      { x = xm;  y++;       if (y > yM - ym)   salir = 1;      }    }  }  setviewport(0,0,getmaxx()-1,getmaxy()-1,1);}#pragma option -w int main(void){   int gdriver = DETECT, gmode, errorcode;    // Sustituye esta parte del codigo para iniciar modo grafico   // con 256 colores si quieres colocar   // una imagen con 256 colores...    initgraph(&gdriver, &gmode, "C:\\TC\\BGI");   errorcode = graphresult();   if (errorcode != grOk)   {      printf("Graphics error: %s\n", grapherrormsg(errorcode));      printf("Press any key to halt:");      getch();      exit(1);   }    setfillstyle(1,7);   bar(0,0,getmaxx()-1,getmaxy()-1); //Deben estar las imagenes en la ubicacion correcta    if(getmaxx()+1==640&&getmaxy()+1==480)   { cargaPCX(0,0,"Logo.pcx",0); }   if(getmaxx()+1==800&&getmaxy()+1==600)   { cargaPCX(0,0,"Logo8x6.pcx",0); }    getch();   closegraph();   return 0;}  

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


See you soon!!!

Piyey

Navegación

[0] Índice de Mensajes

Ir a la versión completa