Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





especificación de ficheros

Iniciado por killgates, 23 de Enero de 2016, 05:14:44 PM

« anterior - próximo »

killgates

Hola,

Ando buscando información en internet sobre la estructura interna para ficheros targa, la cual necesito para un programa de opengl. Y no encuentro nada concreto.
Mi intención es entender como leer este fichero, para extraer los datos y su indormación de cabezera.

Gracias

[EX3]

Buscar "tga format specification" en Google:
https://www.google.es/search?q=tga+format&oq=TGA+f&aqs=chrome.2.69i57j0l5.3192j0j7&sourceid=chrome&es_sm=122&ie=UTF-8#q=tga+format+specification

No te lo tomes a mal, pero da la sensación que ni te has molestado en buscar un poco en Google, por que TGA no es precisamente un formato nuevo ni poco documentado.

Salu2...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

Gallo

Yo hace poco he implementado un loader / writter para ficheros TGA, es de los formatos mas simples que hay, casi todo se puede encontrar en stackoverflow, aquí tienes un buen ejemplo:

http://stackoverflow.com/questions/20595340/loading-a-tga-bmp-file-in-c-opengl

Básicamente has de leer el header campo a campo (en el ejemplo lo hacen de golpe pero no haciendo fread de una estrucutra que seria la tentación, si no usando un array de bytes, ya que con la struct el compilador añadiria padding) siguiendo la especificación y hay una serie de campos que te dirán la cantidad de datos que encontrarás después del header generalmente será: width * height * (bitCount / 8), luego te basas en esos mismos valores para pasarlo a OpenGL, el width y el height está claro,  (bitCount / 8) te dice la cantidad de componentes, si es 1 es que es una imágen de un solo canal, utilizado para mascaras por ejemplo, seria un GL_RED, si es 3 GL_RGB, si es 4, GL_RGBA, en realidad serán BGR y BGRA, pero yo por ejemplo lo convierto a RGBA siempre. Ese ejemplo además prevée TGAs comprimidos.







Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.