PDA

Ver la Versión Completa : Conversión de Códigos de Color


CyberManolo
11-01-2024, 14:13:35
Buenos días.

Sé que es posible obtener el código HEX de color de un pixel de una imagen. Mi pregunta es:

¿Existe alguna función que transforme dicho código HEX a código CIE LAB?

Gracias.

pgranados
11-01-2024, 20:08:20
Respuesta de ChatGPT


Sí, es posible convertir un código HEX de color a coordenadas CIE LAB en Delphi. Para lograr esto, puedes usar una biblioteca externa que proporcione funciones de conversión de color, ya que Delphi no tiene soporte nativo para la conversión de colores en el espacio CIE LAB.

Una biblioteca comúnmente utilizada para esto es la biblioteca ColorLib. Aquí te dejo un ejemplo de cómo puedes usarla para convertir un código HEX a coordenadas CIE LAB en Delphi:

Descarga y agrega la biblioteca ColorLib a tu proyecto Delphi. Puedes encontrarla en GitHub: https://github.com/danieleteti/delphi-collibri

Asegúrate de agregar las unidades necesarias en tu código:

uses
..., ColorLib, ColorConversion;
var
hexColor: string;
rgbColor: TRGB;
labColor: TLab;
begin
// Asigna el código HEX de color
hexColor := '#FF0000'; // Ejemplo: rojo

// Convierte el código HEX a RGB
hexToRGB(hexColor, rgbColor);

// Convierte el RGB a CIE LAB
RGBToLab(rgbColor, labColor);

// Ahora, labColor contiene las coordenadas CIE LAB del color
ShowMessage(Format('CIE LAB: L=%.4f, a=%.4f, b=%.4f', [labColor.L, labColor.A, labColor.B]));
end;

Asegúrate de ajustar el código según tus necesidades y de manejar posibles excepciones o errores que puedan ocurrir durante la conversión. Además, ten en cuenta que este ejemplo asume que has descargado la biblioteca ColorLib y la has agregado correctamente a tu proyecto Delphi.

CyberManolo
12-01-2024, 12:40:15
Muchas gracias PGranados. El enlace que da ChatGPT no existe.
He encontrado esta otra librería:

https://wiki.lazarus.freepascal.org/mbColorLib

Parece que ahí toca el tema, pero aún no la he investigado.

pgranados
12-01-2024, 15:31:27
Busque la librería y encontré:

https://mxs.bergsoft.net/index.php?p=2

Puedes echarle un ojo