Paletas
Funciones
Palette* | palette_create (...) |
Palette* | palette_cga2 (...) |
Palette* | palette_ega4 (void) |
Palette* | palette_rgb8 (void) |
Palette* | palette_gray1 (void) |
Palette* | palette_gray2 (void) |
Palette* | palette_gray4 (void) |
Palette* | palette_gray8 (void) |
Palette* | palette_binary (...) |
void | palette_destroy (...) |
uint32_t | palette_size (...) |
color_t* | palette_colors (...) |
const color_t* | palette_colors_const (...) |
Una paleta no es más que una lista de colores indexada (Figura 1), generalmente relacionada con un Pixel Buffer. Su principal utilidad es ahorrar espacio en la representación de imágenes, ya que cada pixel se codifica mediante un índice de 1, 2, 4 u 8 bits en lugar del color real donde son necesarios 24 o 32 bits. Por esta razón lo habitual es tener paletas de 2, 4, 16 o 256 colores.
- Utiliza palette_create para crear una paleta.
- Utiliza palette_colors para acceder a los colores.
1. Paleta predefinida
Tenemos varias paletas predefinidas tanto en color (Figura 2) como en tonos de gris (Figura 3). La paleta RGB8 se ha creado combinando 8 tonos de rojo (3bits), 8 tonos de verde (3bits) y 4 tonos de azul (2bits). Esto es así porque el ojo humano distingue mucho menos la variación del azul que de los otros dos colores.
- Utiliza palette_ega4 para crear una paleta predefinida de 16 colores.
- Utiliza palette_rgb8 para crear una paleta de 256 colores.
- Utiliza palette_gray4 y similares para crear una paleta en tonos de gris.
- Utiliza palette_binary para una paleta de dos colores.
palette_create ()
Crea una paleta.
Palette* palette_create(const uint32_t size);
size | El número de colores. |
Retorna
La paleta. El contenido inicial es indeterminado. Editar con palette_colors.
palette_cga2 ()
Crea la paleta de 4 colores (2 bits) de las tarjetas CGA.
Palette* palette_cga2(const bool_t mode, const bool_t intense);
mode |
|
intense |
|
Retorna
La paleta.
Observaciones
palette_ega4 ()
Crea la paleta por defecto de las tarjetas EGA (16 colores, 4 bits).
Palette* palette_ega4(void);
Retorna
La paleta.
Observaciones
palette_rgb8 ()
Crea la paleta de por defecto RGB de 8 bits. Los colores combinan 8 tonos de rojo, 8 de verde y 4 de azul.
Palette* palette_rgb8(void);
Retorna
La paleta.
Observaciones
palette_gray1 ()
Crea una paleta de 2 tonos de gris (1 bit). Negro (0) y blanco (1).
Palette* palette_gray1(void);
Retorna
La paleta.
Observaciones
palette_gray2 ()
Crea una paleta de 4 tonos de gris (2 bit). Negro (0), blanco (3).
Palette* palette_gray2(void);
Retorna
La paleta.
Observaciones
palette_gray4 ()
Crea una paleta de 16 tonos de gris (4 bit). Negro (0), blanco (15).
Palette* palette_gray4(void);
Retorna
La paleta.
Observaciones
palette_gray8 ()
Crea una paleta de 256 tonos de gris (8 bit). Negro (0), blanco (255).
Palette* palette_gray8(void);
Retorna
La paleta.
Observaciones
palette_binary ()
Crea una paleta de dos colores.
Palette* palette_binary(const color_t zero, const color_t one);
zero | Color asociado al valor |
one | Color asociado al valor |
Retorna
La paleta.
palette_destroy ()
Destruye la paleta.
void palette_destroy(Palette **palette);
palette | La paleta. Será puesto a |
palette_size ()
Retorna el número de colores de la paleta.
uint32_t palette_size(const Palette *palette);
palette | La paleta. |
Retorna
El número de colores.
palette_colors ()
Obtiene la lista de colores.
color_t* palette_colors(Palette *palette);
palette | La paleta. |
Retorna
Colores. El tamaño del array viene dado por palette_size.
Observaciones
El búfer es de lectura/escritura.
palette_colors_const ()
Obtiene la lista de colores.
const color_t* palette_colors_const(const Palette *palette);
palette | La paleta. |
Retorna
Colores. El tamaño del array viene dado por palette_size.