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> inline RGBPixel<NumberT> convertRGB(const uint8_t* p) {
11 return RGBPixel<NumberT> {
12 static_cast<NumberT>(p[0]), static_cast<NumberT>(p[1]), static_cast<NumberT>(p[2])};
13}
14
15template <typename NumberT> inline RGBAPixel<NumberT> convertRGBA(const uint8_t* p) {
16 return RGBAPixel<NumberT> {
17 static_cast<NumberT>(p[0]), static_cast<NumberT>(p[1]), static_cast<NumberT>(p[2]),
18 static_cast<NumberT>(p[3])};
19}
20
21template <typename NumberT>
22inline const PixelConverter<RGBPixel<NumberT> (*)(const uint8_t*)> RGB_CONVERTER {
23 convertRGB, 3}; // 3 bytes per pixel
24template <typename NumberT>
25inline const PixelConverter<RGBAPixel<NumberT> (*)(const uint8_t*)> RGBA_CONVERTER {
26 convertRGBA, 4}; // 4 bytes per pixel
27
28} // namespace ImageLib
29
30#endif