qualpal 3.3.0
Loading...
Searching...
No Matches
qualpal.h File Reference

Qualpal API for generating qualitative color palettes. More...

#include <map>
#include <optional>
#include <qualpal/colors.h>
#include <qualpal/metrics.h>
#include <vector>
Include dependency graph for qualpal.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  qualpal::Qualpal
 Builder for qualitative color palette generation. More...
 

Namespaces

namespace  qualpal
 Qualitative color palette generation library.
 

Enumerations

enum class  qualpal::ColorspaceType { HSL , LCHab }
 Supported cylindrical color spaces for input colors. More...
 

Detailed Description

Qualpal API for generating qualitative color palettes.

This file defines the Qualpal class, which provides a builder-style interface for configuring and generating maximally distinct color palettes using perceptual color difference. The API supports multiple input formats, color vision deficiency simulation, and flexible configuration options.

Usage example:

// Basic usage with RGB input, 6 color palette
qp.setInputRGB(<rgb_colors>)
.setCvd({{"protan", 0.5}, {"deuter", 0.2}})
.setBackground("#ffffff")
auto palette = qp.generate(6);
// Use colorspace input (HSL space)
qp4.setInputColorspace({0, 360}, {0.5, 1.0}, {0.3, 0.7});
auto palette4 = qp4.generate(8);
// Using hex color input
qp2.setInputHex({"#ff0000", "#00ff00", "#0000ff"});
auto palette2 = qp2.generate(3);
// Use a built-in palette
auto palette3 =
qualpal::Qualpal{}.setInputPalette("ColorBrewer:Set2").generate(5);
// Extend an existing palette
std::vector<qualpal::colors::RGB> base{ "#ff0000", "#a9ef93", "#ffe302" };
auto pal_extended = qualpal::Qualpal{}.extend(base, 3); // base + 3 new
Builder for qualitative color palette generation.
Definition qualpal.h:80
Qualpal & setInputRGB(const std::vector< colors::RGB > &colors)
Set input colors from a vector of RGB values.
Qualpal & setMetric(metrics::MetricType metric)
Set the color difference metric to use.
Qualpal & setInputPalette(const std::string &palette_name)
Set input colors from a named palette.
std::vector< colors::RGB > generate(std::size_t n)
Generate a qualitative color palette with the configured options.
Qualpal & setMemoryLimit(double gb)
Set the maximum memory limit (in GB) for color difference matrix.
Qualpal & setInputColorspace(const std::array< double, 2 > &h_lim, const std::array< double, 2 > &s_or_c_lim, const std::array< double, 2 > &l_lim, ColorspaceType space=ColorspaceType::HSL)
Set input colors by sampling a colorspace (HSL or LCHab).
std::vector< colors::RGB > extend(const std::vector< colors::RGB > &palette, std::size_t n)
Extend an existing palette by adding n new colors.
Qualpal & setInputHex(const std::vector< std::string > &colors)
Set input colors from a vector of hex color strings.
Qualpal & setCvd(const std::map< std::string, double > &cvd_params)
Set color vision deficiency simulation parameters.
@ DIN99d
DIN99d color difference.

Definition in file qualpal.h.