• Lunes 23 de Diciembre de 2024, 11:56

Autor Tema:  Que Formato Utilizar?bmp,jpg...para Sprites  (Leído 7704 veces)

yo_aprendiz

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Que Formato Utilizar?bmp,jpg...para Sprites
« en: Domingo 8 de Agosto de 2004, 14:03 »
0
Hola a todos. estoy empezando en esto de la programación de videojuegos y quisiera haceros algunas preguntas:

  ¿Qué formato gráfico utilizar para manejar sprites? ¿BMP,jpg...?
  ¿Cómo se utilizan?
  ¿Cómo se crean sprites con buena definición?¿Qué programa utilizar para crearlos?
  ¿como se hace eso del renderizado de los sprites, programado o con 3d studio Max, maya o parecido?

  Espero que me podais resolver todas estas inquietudes. Muchas gracias.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Que Formato Utilizar?bmp,jpg...para Sprites
« Respuesta #1 en: Lunes 9 de Agosto de 2004, 02:54 »
0
¿Qué formato gráfico utilizar para manejar sprites? ¿BMP,jpg...?
el que quieras pero lo ma rapido son bmp o sprites compilados.. esto solo es valido para cargar los archivo a memoria ya que una ves esten en la superficfie de video cualquier imagen de esos formatos ocupara el mismo espacio.

¿Cómo se utilizan?
A quer te refieres con eso?

¿Cómo se crean sprites con buena definición?¿Qué programa utilizar para crearlos?
con mmucho trabajo... cualquier programa.. corel, adobre, macromedia.. 32d estudio, maya.. etc.

¿como se hace eso del renderizado de los sprites, programado o con 3d studio Max, maya o parecido?

Creo que tienes confusion ... mejor se mas claro e¡con esta pregunta.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

AYCUL

  • Miembro activo
  • **
  • Mensajes: 80
    • Ver Perfil
Re: Que Formato Utilizar?bmp,jpg...para Sprites
« Respuesta #2 en: Lunes 9 de Agosto de 2004, 06:19 »
0
pues yo en juegos 2d utilizo archivos "png",bueno mas bien en el juego que estoy haciendo,
nota:hay que fijarse tambien en el tamaño de dichos archivos porque una imajen puede ser de muy buena calidad pero ala vez muy pesada

yo_aprendiz

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Re: Que Formato Utilizar?bmp,jpg...para Sprites
« Respuesta #3 en: Lunes 9 de Agosto de 2004, 16:11 »
0
Juank, me refiero con lo de¿ como se utilizan?, a como los cargo de fichero para pegarlos a la superficie primaria de ddraw para que este se pueda mostrar por pantalla.
 ¿Que formatos utilizas tu?,¿me podrias pasar algo de código?

 Encontre algo de código para cargar BMP pero cuando intentaba cargar alguno hecho por mi, me daba error, no se si tendrá mucho que ver con el formato que lo guardes, o yo que se?. Utilice el Paint shop pro 7.

 A lo del renderizado de los sprites, ¿me refiero a que si se puede cargar un BMP en el 3d studio Max o Maya y hacerles un renderizado para que estos adquieran más calidad?-->¿Es posible?.
O bien ¿crear mis propios personajes en 3d y despues de renderizarlos y guardarlos en algun formato de los antes nombrados BMP,jpg...? creando los sprites uno a uno.

 Quisiera saber si teneis información de como se crearon los personajes y escenarios del juego COMANDOS (de pyros studios).

 Muchas gracias.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Que Formato Utilizar?bmp,jpg...para Sprites
« Respuesta #4 en: Lunes 9 de Agosto de 2004, 17:27 »
0
formatos
Citar
Juank, me refiero con lo de¿ como se utilizan?, a como los cargo de fichero para pegarlos a la superficie primaria de ddraw para que este se pueda mostrar por pantalla.
Lo que yo hago es usar una instancia de la clase Bitmap,
desde alli cargo el bmp y luego creo la superficie asociando ese bmp,
las caracteristicas de la superficie tambien las saco del bmp,
como el tamaño.. las dimensiones etc..
Citar
¿Que formatos utilizas tu?,¿me podrias pasar algo de código?
Cualquiera pero prefiero bmp... codigo en que lenguaje?
Citar
Encontre algo de código para cargar BMP pero cuando intentaba cargar alguno hecho por mi, me daba error, no se si tendrá mucho que ver con el formato que lo guardes, o yo que se?. Utilice el Paint shop pro 7.
Y que codigo usas? muestramelo... el fromato si tiene que ver pues hay bmps 'raros' que no soporta ddraw.. como por ejemplo bmp de 15 bits

Citar
A lo del renderizado de los sprites, ¿me refiero a que si se puede cargar un BMP en el 3d studio Max o Maya y hacerles un renderizado para que estos adquieran más calidad?-->¿Es posible?.
O bien ¿crear mis propios personajes en 3d y despues de renderizarlos y guardarlos en algun formato de los antes nombrados BMP,jpg...? creando los sprites uno a uno.
Primero debes aclara tus conceptos.. lo que se hace es hacer un modelo 3D y luego renderizarlo en una imagen del formato que quieras.. renderizarlo es como tomarle una foto al modelo para obtener una imagen del mismo.
Citar
Quisiera saber si teneis información de como se crearon los personajes y escenarios del juego COMANDOS (de pyros studios).
No tengo.

Citar
Muchas gracias.
de nada.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

yo_aprendiz

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Re: Que Formato Utilizar?bmp,jpg...para Sprites
« Respuesta #5 en: Martes 10 de Agosto de 2004, 16:25 »
0
Vamos a ver.
  Tambien lo cargo en una clase bitmap, el codigo que tengo es para cargar archivos BMP de 8bits. El problema es que si creo un bitmap con algún programa de dibujo no lo puedo mostrar, y eso que lo pongo a las mismas caracteristicas que el otro, y si lo muestra no sale la imagen bien.

  Quisiera saber como cargar archivos BMP en clase bitmap de 24 y 32 bits y luego poderlos mostrar por pantalla, lo mismo para los sprites.

  Si teneis el código a ver si lo podeis poner a disposición de todo aquel que como yo se hace la picha un lio con esto de la carga de archivos BMP u otros formatos.

  Algún alma caritativa?  :rolleyes:

yo_aprendiz

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Re: Que Formato Utilizar?bmp,jpg...para Sprites
« Respuesta #6 en: Martes 10 de Agosto de 2004, 16:29 »
0
Perdon.  --> En código "C" o "C++" si es posible, sino cualquier otro y ya me la apaño yo.
 
  Gracias.

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Que Formato Utilizar?bmp,jpg...para Sprites
« Respuesta #7 en: Martes 10 de Agosto de 2004, 19:05 »
0
Cita de: "yo_aprendiz"
Vamos a ver.
  Tambien lo cargo en una clase bitmap, el codigo que tengo es para cargar archivos BMP de 8bits. El problema es que si creo un bitmap con algún programa de dibujo no lo puedo mostrar, y eso que lo pongo a las mismas caracteristicas que el otro, y si lo muestra no sale la imagen bien.

  Quisiera saber como cargar archivos BMP en clase bitmap de 24 y 32 bits y luego poderlos mostrar por pantalla, lo mismo para los sprites.

  Si teneis el código a ver si lo podeis poner a disposición de todo aquel que como yo se hace la picha un lio con esto de la carga de archivos BMP u otros formatos.

  Algún alma caritativa?  :rolleyes:
Generalmente prefiero usar BMP de 8 bits para tener los gráficos listos para editarlos, o mi propio formato: dimensiones, bits por pixel, indice de colores si corresponde y datos.

Es que es mejor no desperdiciar espacio en disco, aunque luego tu BMP lo pases a 16 bits por pixel para superficie directDraw, o lo que tengas que usar.

Realmente admiro como hicieron la saga diablo con 256 colores!, conocimiento tremendo de la teoría del color!!. Usar 256 colores tiene sus ventajas: velocidad trucos interesantes para cambiar el color de los sprites... pero preparar las imágenes para que todas correspondan con la misma tabla de colores y obtener un resultado visualmente tan bueno no es cosa fácil...

Usando JPG puedes comprimir mucho más perdiendo calidad, pero no es recomendable para sprites, sino para imágenes de fondo o cualquier otra que nunca tengan partes "transparentes".

yo_aprendiz

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Re: Que Formato Utilizar?bmp,jpg...para Sprites
« Respuesta #8 en: Lunes 23 de Agosto de 2004, 17:35 »
0
Bueno, Bueno, Bueno, aun espero algún alma caritativa que me muestre el camino.¿alguien que se ofrezca a mostrarme un poco de código?¿BMP de 8,16,24,32 bits? :hola:

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Que Formato Utilizar?bmp,jpg...para Sprites
« Respuesta #9 en: Lunes 23 de Agosto de 2004, 17:44 »
0
no te mostrare nada dew codigo... a mi nadie me lo mostro y me toco hacerlo todo solo, y no es facil, perop tampoco es imposible.

Si demuestras que has avanzado algo tal vez te ayude en el futuro...
por cierto ya al menoz buscaste la especificacion del formato bmp?.. o no...
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Amilius

  • Miembro HIPER activo
  • ****
  • Mensajes: 665
    • Ver Perfil
Re: Que Formato Utilizar?bmp,jpg...para Sprites
« Respuesta #10 en: Lunes 23 de Agosto de 2004, 18:23 »
0
Cita de: "yo_aprendiz"
Bueno, Bueno, Bueno, aun espero algún alma caritativa que me muestre el camino.¿alguien que se ofrezca a mostrarme un poco de código?¿BMP de 8,16,24,32 bits? :hola:
Para ver código mejor bajas un open source de Sourceforge, por ejemplo para Delphi tienes el delphiX que es un paquete de componentes para crear juegos usando directX. DelphiX (unos cuantos megas) facilita muchísimo la creación de juegos con delphi en 2d y 3d, al punto que si quieres usar un sonido, lo editas y luego lo agregas con las opciones de la paleta de propiedades, lo mismo con los gráficos. Existen además otras herramientas para 3d para utilizar archivos .dxf y convertirlos en archivos .x de directx, lo cual es bastante útil para agregar objetos 3d a tu juego.

Por supuesto lo mejor es que el código es open source y podrás ver personalmente como se programó cada parte de esta biblioteca de componentes.

Si trabajas con el visual C++ puedes bajarte un paquete completo (sdk) para directx que si mal no recuerdo ocupa unos 130 a 200 megas e incluye ejemplos básicos de como usar las bibliotecas directX.

yo_aprendiz

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Re: Que Formato Utilizar?bmp,jpg...para Sprites
« Respuesta #11 en: Lunes 23 de Agosto de 2004, 18:47 »
0
Amilius muchas gracias por contestarme con cortesia y sabidurida. Es una muy buena idea eso que me dices.;)

  A los que no quieran dar mucha información que no contesten nada y asi no tenemos que leer tonteridas.  Si tengo la especificación de los BMP pero mi Inglis pitinglis no es muy Very Wel. Juank, Dios todo poderoso creador y gran conocedor de este mundo.¿Para que abres este foro, si despues no hechas una mano?¿para acomular conocimiento de otras personas sin dar nada a cambio?. Algún dia publicare algo aver que te parece y asi poder entrar en tu selecto club de intelectuales de los videojuegos. ¿me tendré que ganar la confianza, no?

  Muchas gracias de todos modos.

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Que Formato Utilizar?bmp,jpg...para Sprites
« Respuesta #12 en: Miércoles 25 de Agosto de 2004, 00:12 »
0
Cita de: "yo_aprendiz"
Amilius muchas gracias por contestarme con cortesia y sabidurida. Es una muy buena idea eso que me dices.;)

  A los que no quieran dar mucha información que no contesten nada y asi no tenemos que leer tonteridas.  Si tengo la especificación de los BMP pero mi Inglis pitinglis no es muy Very Wel. Juank, Dios todo poderoso creador y gran conocedor de este mundo.¿Para que abres este foro, si despues no hechas una mano?¿para acomular conocimiento de otras personas sin dar nada a cambio?. Algún dia publicare algo aver que te parece y asi poder entrar en tu selecto club de intelectuales de los videojuegos. ¿me tendré que ganar la confianza, no?

  Muchas gracias de todos modos.
Cita de: ""yo_aprendiz""
Amilius muchas gracias por contestarme con cortesia y sabidurida. Es una muy buena idea eso que me dices.;)
Eso es una indirecta (o como decimos aquí, ¡tamaño de pedrada!)

Cita de: ""yo_aprendiz""
Algún dia publicare algo aver que te parece y asi poder entrar en tu selecto club de intelectuales de los videojuegos. ¿me tendré que ganar la confianza, no?
Si, te tendrás que ganar la confianza de JuanK y más después de tu "respetuosa" contestación ;).

Bueno, tomemos todo como broma que eso es ¿no? Lo que creo que JuanK querría es que expresaras dudas un tanto más específicas, sin embargo, yo también entiendo que es bastante difícil estar ideándose cómo hacer algo si no tienes un ejemplo a la vista (aunque como JuanK menciona, le costó y por eso preferiría que trabajaras un poco más :P).

Aclaro que soy principiante, pero tengo algo de código para poder cargar un BITMAP de 24 bits (lo hice a la par que JuanK, su código es mucho mejor, y de hecho me dió buenas ideas mirar los prototipos de las funciones que mostró alguna vez) que en alguna vez comenté publicaría (creo que no fué en este foro) pero NADIE contestó, quizá porque todos los que leyeron el mensaje ya sabían cómo hacerlo, porque no estaban interesados en código "feo" de un "newbie" en cuanto a gráficos o porque simplemente no leyeron el mensaje :P.

Si gustas, te paso lo que tengo, pero te advierto que no te puedo ayudar a descifrarlo :D.

Saludos,
José Jorge (Geo).
La imaginación es el límite.
Hardware & Software | Mexchip

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Que Formato Utilizar?bmp,jpg...para Sprites
« Respuesta #13 en: Miércoles 25 de Agosto de 2004, 00:31 »
0
Citar
A los que no quieran dar mucha información que no contesten nada y asi no tenemos que leer tonteridas. Si tengo la especificación de los BMP pero mi Inglis pitinglis no es muy Very Wel. Juank, Dios todo poderoso creador y gran conocedor de este mundo.¿Para que abres este foro, si despues no hechas una mano?¿para acomular conocimiento de otras personas sin dar nada a cambio?. Algún dia publicare algo aver que te parece y asi poder entrar en tu selecto club de intelectuales de los videojuegos. ¿me tendré que ganar la confianza, no?

Muchas gracias de todos modos.

1- Yo no abri este foro, lo abrio otra persona.
2- Cuando comencé era igual o mas tonto que tú  :P
3- lo del ingles... pues deberias aprender porque la inmensa mayoria , por no decir que la totalidad de las especificaciones de los formatos estan en ingles.. y no pretenderas que cada vez que quieras hacer algo tengas que buscar a otro para que te lo haga porque no sabes ingles... PD. yo tampoco se.
4-
Citar
Dios todo poderoso creador y gran conocedor de este mundo.
No lo creo, amilus y ruben3D han demostrado ser las personas que mas saben de videojuegos en este foro, y su nivel esta muy ,, pero muy por encima del mio.
5-
Citar
.¿Para que abres este foro, si despues no hechas una mano?
No me gusta ayudar a la gente que le gusta que le den todo hecho, porque no se esfuerzan ni siquira con una neurona... el dia que me demuestres lo que puedes hacer por ti mismo te ayudare tanto o mas de como les he ayudado a quienes lo han merecido, mientras tanto si acaso recibiras semillas, para que cultives tu capacidad de crear tu propi conocimiento.
6-
Citar
?¿para acomular conocimiento de otras personas sin dar nada a cambio?.
¿que no es eso lo que estas haciendo tu?
Por otro lado son muy pocas las preguntas que he postedado en el foro y muchas las que he contestado, y la verdad de las dudas que he tenido tal vez solo una o dos o unas pocas...no las he resuelto aca,  he tenido que resolvermelas yo mismo para luego publicar mi autorespuesta y ayudar con lo que aprendo a gente que demuestra más interes que tu.
7-
Citar
y asi poder entrar en tu selecto club de intelectuales de los videojuegos
Si algun dia, pero primero habra que hacer 3 cosas:
a- fundar el club
b- volverme un intelectual de los videojuegos
c- preguntarles a ruben3d, a geo, a amilus, a blag y mis amigos de teleport (que son todos los intelectuales) a ver si me dejan unir a su club  :(
8- Ojala me demostraras que puedes hacer lo del bmp tu solo.. al menos para bmp de 24.
9- FIN
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Que Formato Utilizar?bmp,jpg...para Sprites
« Respuesta #14 en: Miércoles 25 de Agosto de 2004, 00:32 »
0
respecto a tu codigo geo...
no recuerod pero deberias postearlo en ambos foros.. o al menos una seccion.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Geo

  • Miembro de PLATA
  • *****
  • Mensajes: 1011
  • Nacionalidad: mx
    • Ver Perfil
    • http://hsblog.mexchip.com
Re: Que Formato Utilizar?bmp,jpg...para Sprites
« Respuesta #15 en: Miércoles 25 de Agosto de 2004, 01:06 »
0
Por lo pronto pongo el archivo de cabecera de las funciones para manipular el bitmap (de 24 bits):
Código: Text
  1.  
  2. #ifndef MYBMP_H
  3. #define MYBMP_H
  4.  
  5. // El tipo de bitmap como entero
  6. #define BM 19778
  7.  
  8. // Valores de compresión del mapa de bits
  9. #define BI_RGB 0
  10. #define BI_RLE4 1
  11. #define BI_RLE8 2
  12. #define BI_BITFIELDS 3
  13.  
  14. // Constantes para el retorno de
  15. // int loadMyBmp(char *fileName, MYBMP *myBmp);
  16. #define SUCCESS 1
  17. #define E_FILENOTOPENED 2
  18. #define E_FILENOTVALID 3
  19. #define E_FILECOMPRESSED 4
  20. #define E_COLDEPTHNOTSUPPORTED 5
  21. #define E_MEMORYFAILURE 6
  22. #define E_FILENOTLOADED 7
  23. #define E_COULDNOTCREATEFILE 8
  24.  
  25. // Tipos de datos empleados en el programa,
  26. // no es necesario declararlos si incluímos
  27. // la cabecera <windows.h> (o <winalleg.h>
  28. // en el caso de emplear Allegro).
  29. typedef unsigned char BYTE;
  30. typedef unsigned short WORD;
  31. typedef unsigned long DWORD;
  32. typedef long LONG;
  33.  
  34. // Cabecera de información del archivo de mapa de bits.
  35. typedef struct MYBMPFILEHEADER {
  36.   WORD  type;
  37.   DWORD fileSize;
  38.   WORD  reserved1;
  39.   WORD  reserved2;
  40.   DWORD dataOffset;
  41. } MYBMPFILEHEADER;
  42.  
  43. // Cabecera del archivo de mapa de bits con información
  44. // sobre la imagen.
  45. typedef struct MYBMPINFOHEADER {
  46.   DWORD headerSize;
  47.   LONG  width;
  48.   LONG  height;
  49.   WORD  planes;
  50.   WORD  bitsPerPixel;
  51.   DWORD compression;
  52.   DWORD dataSize;
  53.   DWORD hRes;
  54.   DWORD vRes;
  55.   DWORD colors;
  56.   DWORD importantColors;
  57. } MYBMPINFOHEADER;
  58.  
  59. // Tipo de dato para cada elemento de la
  60. // paleta de colores en caso de necesitarse.
  61. // Por el momento no se hace uso de ella porque
  62. // estamos trabajando con una imagen de 24 bits.
  63. typedef struct MYPALENTRY {
  64.   BYTE b;
  65.   BYTE g;
  66.   BYTE r;
  67.   BYTE reserved;
  68. } MYPALENTRY;
  69.  
  70. // La estructura a usar por cada mapa de bits
  71. // que se emplee en el programa.
  72. typedef struct MYBMP {
  73.   MYBMPFILEHEADER fileHeader;
  74.   MYBMPINFOHEADER infoHeader;
  75.   MYPALENTRY *palette;
  76.   BYTE *data;
  77. } MYBMP;
  78.  
  79. int loadMyBmp(char *fileName, MYBMP *myBmp);
  80. int saveMyBmp(char *fileName, MYBMP *myBmp);
  81. void printMyBmpInfo(const MYBMP *myBmp);
  82. void clearMyBmp(MYBMP *myBmp);
  83. void copyMyBmpHeaders(const MYBMP *source, MYBMP *output);
  84.  
  85. #endif /* MYBMP_H */
  86.  
  87.  
Al principio hay muchos defines, no son necesarios, es simplemente que yo implementé la función de la carga del bitmap de tipo int, así puedo reconocer más fácilmente el error que se presente simplemente devolviendo la constante (macro) adecuada. Otra forma que se me ocurrió más tarde es usar la función de la carga del bitmap de la siguiente manera:
Código: Text
  1.  
  2. MYBMP *loadMyBmp(char *fileName);
  3.  
  4.  
y así la usaría de esta forma:
Código: Text
  1.  
  2. MYBMP *miBitmap = loadMyBmp("archivo.bmp");
  3.  
  4.  
(Así es como la implementó JuanK :P). Yo preferí la otra manera para poder encontrar más fácilmente los errores, sin embargo, también podría hacerlo creando una variable global en la que se guardara el último error corregido (al estilo de varias librerías :smartass:)

Con este código hice un programa que recibe como parámetro una imagen mapa de bits de 24 bits y la convierte a escala de grises, lo adjunto al mensaje por si quieren echarle un vistazo (sólo Blag lo probó, me comentó que no se podía ejecutar en WindowsXP.
Nota: este programa (creo) si funciona en WindowsXP, pero tiene un problema con la liberación de memoria: al checar para encontrar la causa del error que me mencionó Blag sólo me di cuenta de que daba error al tratar de liberar memoria usando free() en un par de instrucciones, entonces lo único que hice fué eliminar esas dos llamadas, o sea, el programa NO funciona como debiera (en cuanto a liberar la memoria), cuando chequé esto ya no quise corregir completamente el error (yo trabajo bajo Windows98 y tendría que conseguir una PC con WinXP para trabajar y pues la verdad me dió flojera :P). Eso si, pronto espero hacerme de una PC nueva y entonces corregiré este programa :kicking:.

Por cierto, ya nos desviamos bastante de la pregunta del título del post :P, no tengo mucha experiencia, pero en realidad el formato de imagen a utilizar para tus sprites dependerá de lo que prefieras manejar: menos espacio, mayor flexibilidad, etc. Por ejemplo, cargar un mapa de bits no es muy difícil, puedes crear tus propias funciones, para cargar una imagen JPG es un poco más complicado, lo mejor sería buscar una librería que se encargue de manejar estas imágenes (de hecho, sería lo mejor buscar una librería que se encargue de cargar las imágenes, es más cómodo y te enfocas rápidamente a lo que deseas en lugar de estar investigando sobre formatos gráficos). Una buena alternativa son las imágenes PNG, son un estándar abierto y según comentarios que he leído tienen buena calidad en poco espacio (en muchas ocasiones prefiero manejar PNG en lugar de GIF para imágenes para alguna página web, ya que si tratas de obtener imágenes de la misma calidad entre estos formatos la de formato PNG tiene menor tamaño, aunque claro, depende de varios parámetros :P).

Saludos,
José Jorge (Geo).
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
La imaginación es el límite.
Hardware & Software | Mexchip

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Que Formato Utilizar?bmp,jpg...para Sprites
« Respuesta #16 en: Miércoles 25 de Agosto de 2004, 02:14 »
0
hola geo..
ya lo habia visto antes, pero no habia dicho nada.  :hola:
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

yo_aprendiz

  • Nuevo Miembro
  • *
  • Mensajes: 18
    • Ver Perfil
Re: Que Formato Utilizar?bmp,jpg...para Sprites
« Respuesta #17 en: Miércoles 25 de Agosto de 2004, 17:26 »
0
Juank si te ha sentado mal mi comentario, espero que me perdones, pero es desesperante intentar hacer algo que no tienes mucha idea y sin ayuda de ningún tipo, por eso quise pedir algo de código para irme orientando.  Por ejemplo, esto de quedarse unos dias sin avanzar nada y sin que te ofrezcan un poco de ayuda de lo que pides, ¿no crees que es para tirarse de los pelos?
  Desde mi modesta opinión, no cuesta ningún trabajo mostrar un poco de código fuente.

  Aquí dejo la carga del BMP 8bits que he encontrado por la red. Tambien se como cargar un TGA de 24 ó 32 bits sin comprimir, comprimido lo he conseguido sacar de una carga de textura de 3d pero las dimensiones tienen que ser de NxN y no me pregunteis el ¿por que?--> si quereis os lo paso, a ver si podemos cargarlo MxN.

  Espero que el que este en mi situación le ayude.

class CBmpFileReader
{
protected:
    BITMAPFILEHEADER m_BMPFileHead ; // guarda la cabezera de archivo
    BITMAPINFOHEADER m_BMPFileInfo ; // guarda la informacion del fichero
    RGBQUAD m_rgbPalette[COLORS] ; // guada la paleta
    BYTE* m_cImage ; // guarda la imagen

public:
    CBmpFileReader() ; // constructor
    ~CBmpFileReader() ; // destructor
    BOOL load(char *filename) ; // carga la imagen    
} ;

BOOL CBmpFileReader::load(char *filename){ //carga BMP de fichero
  HANDLE hfile; //manejador de fichero de entrada
  DWORD actualRead; //numero de bits actualmente leidos
  int image_size; //dimensión de la imagen(width*height)
  BOOL OK=TRUE; //no ha ocurrido ningún error todavia
  //abre el archivo de entrada para lectura
  hfile=CreateFile(filename,GENERIC_READ,FILE_SHARE_READ,
    (LPSECURITY_ATTRIBUTES)NULL,OPEN_EXISTING,
    FILE_ATTRIBUTE_NORMAL,(HANDLE)NULL);
  //comprueba si el archivo no puede abrirse
  if(hfile==INVALID_HANDLE_VALUE)return FALSE;
  //lee el titulo y la información de la estructura
  OK=ReadFile(hfile,&m_BMPFileHead,sizeof(m_BMPFileHead),
    &actualRead,NULL);
  if(OK)OK=ReadFile(hfile,&m_BMPFileInfo,
    sizeof(m_BMPFileInfo),&actualRead,NULL);
  //se asegura de que el BMP es de 8 bits
  if(OK)OK=m_BMPFileInfo.biBitCount==8;
  //coge la paleta del BMP
  if(OK)OK=ReadFile(hfile,m_rgbPalette,sizeof(m_rgbPalette),
    &actualRead,NULL);
  //sale fuera si algo salio mal
  if(!OK){CloseHandle(hfile); return FALSE;}
  //asignación de memoria para los datos de la imagen
  image_size=m_BMPFileInfo.biWidth*m_BMPFileInfo.biHeight;
  if(m_cImage)delete[]m_cImage; //borra cualquier espacio antiguo
  m_cImage=new BYTE[image_size]; //asigna nuevo espacio
  if(!m_cImage){ //comprueba si ha fallado la asignación de memoria
    CloseHandle(hfile); return FALSE;
  }
  //redondea a la anchura de la linea a un multiplo proximo a 4
  int width=(m_BMPFileInfo.biWidth+3)&~3;
  //lectura de la imagen BMP
  int i=0; //contador
  BYTE trash[4]; //para sostener la basura al final de cada línea
  int remainder=width-m_BMPFileInfo.biWidth; //anchura de basura
  while(OK&&i<m_BMPFileInfo.biHeight){
    //lee los datos
    OK=OK&&ReadFile(hfile,
      (BYTE*)(m_cImage+i*m_BMPFileInfo.biWidth),
      m_BMPFileInfo.biWidth,&actualRead,NULL);
    //lea basura al extremo de línea
    OK=OK&&ReadFile(hfile,trash,remainder,&actualRead,NULL);
    i++; //siguiente linea
  }
  if(!OK)delete[]m_cImage; //limpia si fallo
  //cierre y salida
  CloseHandle(hfile);
  return OK;
} //load

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Que Formato Utilizar?bmp,jpg...para Sprites
« Respuesta #18 en: Miércoles 25 de Agosto de 2004, 18:21 »
0
Citar
Por ejemplo, esto de quedarse unos dias sin avanzar nada y sin que te ofrezcan un poco de ayuda de lo que pides, ¿no crees que es para tirarse de los pelos?
No.
Citar
Desde mi modesta opinión, no cuesta ningún trabajo mostrar un poco de código fuente.
En efecto no es ningun trabajo pasarlo hecho, pero si es trabajo hacerlo y aun mas trabajo hacerlo con la suficiente voluntad e interes antes de pedir fuentes.

En todo caso adelante con tu ejercicio, y si tienes duas puedes preguntar.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io