freeimage.h

FreeImage_ApplyColorMapping

1 4 8 16 24 32

DLL_API unsigned DLL_CALLCONV FreeImage_ApplyColorMapping(FIBITMAP *dib, RGBQUAD
*srccolors, RGBQUAD *dstcolors, unsigned count, BOOL ignore_alpha, BOOL swap);

Aplica mapeo de color para uno o varios colores en un mapa de bits de 1-, 4- o 8-bit con paleta o en una imagen de alto color de 16-, 24- o 32-bit.

Esta función mapea hasta el número de colores especificados en srccolors con los especificados en dstcolors.

De este modo, el color srccolors[N], si se encuentra en la imagen, será reemplazado por el color dstcolors[N].

Se asume que los dos arrays srccolors y dstcolors no contienen menos de count.

Si el parámetro swap es TRUE, adicionalmente todos los colores especificado en dstcolors son también asignados a los especificados en srccolors. Para ima´genes de alto color, los datos de la imagen actual serán modificados mientras que para imágenes con paleta, sólo se modificará la paleta.

Para imágenes de 16-bit, todos los colores especificados se convierten de forma transparente a su representación adecuada de 16-bit (incluso en los formatos RGB555 o RGB565 format, en los que se determina por las máscaras de rojo, verde y azul).

Hay que tener en cuenta que este comportamineto es diferente del de FreeImage_ApplyPaletteIndexMapping, que modifica los datos de la imagen reales en imágenes con paleta.

Parámetros:

  • dib Imagen de entrada y salida a procesar.
  • srccolors Array de colores a usar como origen en el mapeo.
  • dstcolors Array de colores a usar como destino en el mapeo.
  • count Número de colores a mapear. Este es el tamaño de los dos arrays srccolors y dstcolors.
  • ignore_alpha Si es TRUE, los colores en imágenes de 32-bit se tratan como si fueran de 24-bit.
  • swap Si es TRUE, los colores de origen y destino son intercambiado, es decir, cada color de destino también es mapeado a su correspondiente color de origen.

La función retorna el número de pixels modificados o cero, si ningún pixel fue modificado.