Formato PIC

 
Hardware
Modo 13h
Retrazado Vertical
Primitivas
La Paleta
Pantallas Virtuales
Sprites
Tablas Prefedifinidas
Efectos
Texto
Formatos gráficos
Periféricos
Optimizaciones
Herramientas
Cursos
Links
Foro
Correo Electrónico
El formato PIC es originario del programa para dibujo llamado Animator Studio. Este formato se hizo famoso con la aparición de la primera versión de este programa.
Este formato tiene una ventaja con el formato crudo, y es que en un mismo archivo se encuentra la paleta de colores. El formato PIC no esta comprimido por lo que se puede decir que tambien es un formato crudo.

El formato PIC del Animator Studio tiene el siguiente formato:

Cabecera: 32 bytes
Paleta de colores: 768 bytes
Imagen: 64000 bytes
Total: 64800 bytes

En la cabecera se guardan datos reservados solo para la utilización en el programa Animator Studio, por lo que no tienen mayor importancia. Ahora veremos una rutina para leer este tipo de formato, que  tambien es muy simple:
 

int LoadPicHead(char *filename, t_paleta paleta, unsigned char *where)
{
    enum{ARCHIVO_NO_ENCONTRADO=0, ARCHIVO_NO_VALIDO=-1, OK=1};
    char head[32];
    FILE *f;

    if((f=fopen(filename, "rb"))==NULL)  return ARCHIVO_NO_ENCONTRADO;

    if(filesize(f)!=64800)
    {
        fclose(f);
        return ARCHIVO_NO_VALIDO;
    }

    fread(head, sizeof(char), 32, f);
    fread(paleta, sizeof(char), 768, f);
    fread(where, sizeof(char), 64000, f);
    fclose(f);

    return OK;
}

Este formato, como ya vimos posee una cabecera de 32 bytes, los cuales para nosotros son un desperdicio por lo que comúnmente uno se crea otro formato similar, pero sin la cabecera. Ahora crearemos una rutina similar a la anterior, con la única diferencia que el archivo contendrá en sus primeros 768 bytes la paleta, y en los 64000 bytes restantes estará la imagen en sí. Veamos:
 

int LoadPic(char *filename, t_paleta paleta, unsigned char *where)
{
    enum{ARCHIVO_NO_ENCONTRADO=0, ARCHIVO_NO_VALIDO=-1, OK=1};
    FILE *f;

    if((f=fopen(filename, "rb"))==NULL)  return ARCHIVO_NO_ENCONTRADO;

    if(filesize(f)!=64768)
    {
        fclose(f);
        return ARCHIVO_NO_VALIDO;
    }

    fread(paleta, sizeof(char), 768, f);
    fread(where, sizeof(char), 64000, f);
    fclose(f);

    return OK;
}

Como ven estos formatos son tambien muy simples de utilizar y de crearlos. Por ejemplo teniendo una imagen en formato PCX, podemos crearnos otro archivo en formato PIC. Simplemente copiando la paleta y la imagen al nuevo archivo.



Ejemplo
 

Librería gráfica: vgalib.h
 

En este ejemplo veremos como leer un archivo en formato PIC, la imagen ocupará el ultimo formato, es decir sin la cabecera.
 

Ver ejemplo 
 
 
 

Bajar todo Bajar todo (40.4 Kb)


Volver a formatos gráficos
1
Hosted by www.Geocities.ws

1