#ifndef PNGREADER_H #define PNGREADER_H #include typedef png_int_32 Color; class PNGReader final { const char* path; int width; int height; int channels; FILE* file; png_structp read; png_infop info; char** rowPointers; bool checkSignature(); public: PNGReader(const char* path); ~PNGReader(); PNGReader(const PNGReader& other) = delete; PNGReader(PNGReader&& other) = delete; PNGReader& operator=(const PNGReader& other) = delete; PNGReader& operator=(PNGReader&& other) = delete; int getWidth() const; int getHeight() const; int getChannels() const; int getBufferSize() const; bool hasError() const; bool readData(char* buffer); }; #endif