image_palette_generator

🌈 Generate a color palette from an image or find dominant color.

MIT License

Stars
15
Committers
1

image_palette_generator

Generate a color palette from an image or find dominant color.

Samples

Currently, you can extract:

  • Dominant Color: Most prominent color in the image.
  • Color Palette: A set of catchy colors taken from the image, sorted according to vibrancy.
  • Color Tones: A set of normalized colors taken from various areas of the image, sorted according to luminance.

Example

Currently only C++ API is available.

Instantiate the class.

auto palette_generator = ImagePaletteGenerator{};

Open an image source.

// A file path.
palette_generator.Open("/home/user/image.jpeg");
// A FILE*
FILE* file = fopen(argv[1], "rb");
palette_generator.Open(file);
// An encoded image buffer.
palette_generator.Open(static_cast<uint8_t>(buffer), 1024);

Extract dominant color, palette or tones.

auto color = palette_generator.GetDominantColor();

std::vector<Color> palette = palette_generator.GetPalette();
for (const auto &color: palette) {
  std::cout << color.ToString() << "\n";
}

std::vector<Color> tones = palette_generator.GetTones();
for (const auto &color: tones) {
  std::cout << color.ToString() << "\n";
}

License

MIT License

Copyright 2022, Hitesh Kumar Saini <[email protected]>

Acknowledgements

Majority of internal work is leveraged using following open-source libraries:

MIT License

Copyright 2017 Sean Barrett

MIT License

Copyright 2004, Dennis Ranke