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