Img2Num C++ (Internal Developer Docs) dev
API Documentation
Loading...
Searching...
No Matches
cielab.h
1#ifndef CIELAB_H
2#define CIELAB_H
3
4#include <cstdint>
5#include <type_traits>
6
7#include "internal/LABAPixel.h"
8#include "internal/LABPixel.h"
9#include "internal/RGBAPixel.h"
10#include "internal/RGBPixel.h"
11
12// templates must be in headers
13
14template <typename Tin, typename Tout>
15void rgb_to_lab(const Tin r_u8, const Tin g_u8, const Tin b_u8, Tout &out_l, Tout &out_a,
16 Tout &out_b);
17
18template <typename Tin, typename Tout>
19void lab_to_rgb(const Tin L, const Tin A, const Tin B, Tout &r_u8, Tout &g_u8, Tout &b_u8);
20
21template <typename Tin, typename Tout>
22void rgb_to_lab(const ImageLib::RGBAPixel<Tin> &rgba, ImageLib::LABAPixel<Tout> &laba);
23
24template <typename Tin, typename Tout>
25void rgb_to_lab(const ImageLib::RGBPixel<Tin> &rgb, ImageLib::LABPixel<Tout> &lab);
26
27template <typename Tin, typename Tout>
28void lab_to_rgb(const ImageLib::LABAPixel<Tin> &laba, ImageLib::RGBAPixel<Tout> &rgba);
29
30template <typename Tin, typename Tout>
31void lab_to_rgb(const ImageLib::LABPixel<Tin> &lab, ImageLib::RGBPixel<Tout> &rgb);
32
33#include "cielab_impl.h"
34
35#endif // CIELAB_H