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.