freeimage.h

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.