Viernes 15 de Noviembre de 2024, 13:03
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación Específica
»
Programación de Videojuegos
»
Allegro
»
Como abrir una imagen
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Como abrir una imagen (Leído 2858 veces)
trio09
Nuevo Miembro
Mensajes: 2
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
Tweet
JuanK
Miembro de ORO
Mensajes: 5393
Nacionalidad:
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
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:
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
/*
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
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
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación Específica
»
Programación de Videojuegos
»
Allegro
»
Como abrir una imagen