#pragma once #include "constants.h" #include "typedefs.h" #define USER_PTR class Pixels; // TODO: template struct Image { int width{0}; int height{0}; // uint8_t data[img_height][img_width] = {{0}}; using row_t = std::array; using data_t = std::array; using rotated_row_t = std::array; using column_t = rotated_row_t; using rotated_data_t = std::array; // data_t d; data_t data; // data_t *data; // uint8_t *data = {nullptr}; // uint8_t &dataAt(size_t row, size_t col); // uint8_t rotated_cw[img_width][img_height] = {{0}}; rotated_data_t rotated_cw; // size_t dataSize{0}; // unsigned int stride{0}; libcamera::PixelFormat pixelFormat{0}; Counters counters{}; void rotate(); std::shared_ptr pixels() const; void copyFromData(const void* src, size_t size); };