FreeImage_GetAdjustColorsLookupTable
8 24 32
DLL_API int DLL_CALLCONV FreeImage_GetAdjustColorsLookupTable(BYTE *LUT, double brightness, double contrast, double gamma, BOOL invert);
Esta función crea una tabla de búsqueda para usar con FreeImage_AdjustCurve que puede ajustar el brillo y el contraste, corregir el gamma e invertir la imagen con una simple llamada FreeImage_AdjustCurve. Si más de una de estas propiedades de visualización de imagen necesita ser ajustada, usar una tabla de búsqueda combinada es preferible a usar cada función de ajuste por separado. Esto es particularmente cierto para grandes imágenes o si el rendimiento es un problema. Entonces, el caro proceso de iterar para todos los pixels de una imagen se realiza sólo una vez y no cuatro.
Además, la tabla de búsqueda creada no depende del orden en que cada operación de ajuste se realice. Debido a problemas de redondeo y conversiones a byte, es importante el orden en que se realicen las operaciones de ajuste. Es muy probable que los siguientes fragmentos de código produzcan resultados diferentes:
// snippet 1: contrast, brightness FreeImage_AdjustContrast(dib, 15.0); FreeImage_AdjustBrightness(dib, 50.0); // snippet 2: brightness, contrast FreeImage_AdjustBrightness(dib, 50.0); FreeImage_AdjustContrast(dib, 15.0);
Mejor y más rápido será este otro código:
// snippet 3: BYTE LUT[256]; FreeImage_GetAdjustColorsLookupTable(LUT, 50.0, 15.0, 1.0, FALSE); FreeImage_AdjustCurve(dib, LUT, FICC_RGB);
Esta función también es usada internamente por FreeImage_AdjustColors, que no devuelve la tabla de búsqueda, pero la usa para llamar a FreeImage_AdjustCurve con la imagen pasada.
Descripción de los parámetros:
- LUT Tabla de búsqueda de salida para ser usada por FreeImage_AdjustCurve. Se asume que el tamaño de 'LUT' es 256.
- brightness Valor del porcentaje de brillo en el rango [-100..100]. Un valor cero significa que no hay cambio de brillo, menos de cero hace la imagen más oscura y mayor que cero más brillante.
- contrast Valor de porcentaje de contraste en el rango [-100..100]. Un valor cero significa que no hay cambio de contraste, menos que cero disminuye el contraste de la iamgen y más de cero lo aumenta.
- gamma Valor a usar para la corrección de Gamma. Un valor de 1.0 deja la imagen sin modificar, menos de uno la hace más oscura y más de uno la hace más brillante. Este parámetro debe ser mayor que cero. En caso contraio será ignorado y no se realizará corrección gamma usandp la tabla de búsqueda creada.
- invert Si es TRUE, la imagen será invertida.
La función retorna el número de ajustes aplicados a la tabla de búsqueda resultante en comparación con una tabla de búsqueda ciega.