Img2Num C++ (Internal Developer Docs) dev
API Documentation
Loading...
Searching...
No Matches
PixelConverters.h
1#ifndef PIXELCONVERTERS_H
2#define PIXELCONVERTERS_H
3
4#include "internal/Pixel.h"
5#include "internal/PixelConverter.h"
6#include "internal/RGBAPixel.h"
7#include "internal/RGBPixel.h"
8
9namespace ImageLib {
10template <typename NumberT>
11inline RGBPixel<NumberT> convertRGB(const uint8_t *p) {
12 return RGBPixel<NumberT>{static_cast<NumberT>(p[0]), static_cast<NumberT>(p[1]),
13 static_cast<NumberT>(p[2])};
14}
15
16template <typename NumberT>
17inline RGBAPixel<NumberT> convertRGBA(const uint8_t *p) {
18 return RGBAPixel<NumberT>{static_cast<NumberT>(p[0]), static_cast<NumberT>(p[1]),
19 static_cast<NumberT>(p[2]), static_cast<NumberT>(p[3])};
20}
21
22template <typename NumberT>
23inline const PixelConverter<RGBPixel<NumberT> (*)(const uint8_t *)> RGB_CONVERTER{
24 convertRGB, 3}; // 3 bytes per pixel
25template <typename NumberT>
26inline const PixelConverter<RGBAPixel<NumberT> (*)(const uint8_t *)> RGBA_CONVERTER{
27 convertRGBA, 4}; // 4 bytes per pixel
28
29} // namespace ImageLib
30
31#endif