12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- /*************************************************************************
- * Copyright (c) 2014 AT&T Intellectual Property
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * https://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors: Details at https://graphviz.org
- *************************************************************************/
- #pragma once
- struct rgb_struct {
- double r, g, b;/* 0 to 255 */
- };
- typedef struct rgb_struct color_rgb;
- struct xyz_struct {
- double x, y, z;
- };
- typedef struct xyz_struct color_xyz;
- struct lab_struct {
- double l, a, b; ///< l: 0 to 100, a,b: -128 to 128
- };
- typedef struct lab_struct color_lab;
- color_xyz RGB2XYZ(color_rgb color);
- color_rgb XYZ2RGB(color_xyz color);
- color_lab RGB2LAB(color_rgb color);
- void LAB2RGB_real_01(double *color); /* convert an array[3] of LAB colors to RGB between 0 to 1, in place */
- color_rgb LAB2RGB(color_lab color);
- color_rgb color_rgb_init(double r, double g, double b);
- color_xyz color_xyz_init(double x, double y, double z);
- color_lab color_lab_init(double l, double a, double b);
- QuadTree lab_gamut_quadtree(
- const int *lightness,
- int max_qtree_level); ///< construct a quadtree of the LAB gamut points
- double *lab_gamut(const int *lightness,
- int *n); ///< give a list of n points in the file defining
- ///< the LAB color gamut
- /** derive around maxpoints from a color list
- *
- * \param color_list List of the form "#ff0000,#00ff00,..."
- * \param maxpoints Maximum number of points to return
- * \return An array of size [maxpoints*3] of the form {{l,a,b},...}
- */
- double *color_blend_rgb2lab(const char *color_list, const int maxpoints);
|