SDK Multiplataforma en C logo

SDK Multiplataforma en C

Paletas

❮ Anterior
Siguiente ❯

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 (...)
voidpalette_destroy (...)
uint32_tpalette_size (...)
color_t*palette_colors (...)

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.
  • Pixel buffer relacionado con los colores de una paleta.
    Figura 1: Paleta asociada con un pixel buffer indexado.

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.
  • Paletas CGA y EGA.
    Figura 2: Paletas de color predefinidas.
    Paletas en tonos de gris.
    Figura 3: Paletas de gris predefinidas.

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

TRUE para el modo 1 de CGA, FALSE modo 0.

intense

TRUE para colores brillantes.

Retorna

La paleta.

Observaciones

Paleta predefinida


palette_ega4 ()

Crea la paleta por defecto de las tarjetas EGA (16 colores, 4 bits).

Palette*
palette_ega4(void);

Retorna

La paleta.

Observaciones

Paleta predefinida


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

Paleta predefinida


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

Paleta predefinida


palette_gray2 ()

Crea una paleta de 4 tonos de gris (2 bit). Negro (0), blanco (3).

Palette*
palette_gray2(void);

Retorna

La paleta.

Observaciones

Paleta predefinida


palette_gray4 ()

Crea una paleta de 16 tonos de gris (4 bit). Negro (0), blanco (15).

Palette*
palette_gray4(void);

Retorna

La paleta.

Observaciones

Paleta predefinida


palette_gray8 ()

Crea una paleta de 256 tonos de gris (8 bit). Negro (0), blanco (255).

Palette*
palette_gray8(void);

Retorna

La paleta.

Observaciones

Paleta predefinida


palette_binary ()

Crea una paleta de dos colores.

Palette*
palette_binary(const color_t zero,
               const color_t one);
zero

Color asociado al valor 0.

one

Color asociado al valor 1.

Retorna

La paleta.


palette_destroy ()

Destruye la paleta.

void
palette_destroy(Palette**);

La paleta. Será puesto a NULL tras la destrucción.


palette_size ()

Retorna el número de colores de la paleta.

uint32_t
palette_size(Palette*);

La paleta.

Retorna

El número de colores.


palette_colors ()

Obtiene la lista de colores.

color_t*
palette_colors(Palette*);

La paleta.

Retorna

Colores. El tamaño del array viene dado por palette_size.

Observaciones

El búfer es de lectura/escritura.

❮ Anterior
Siguiente ❯