PNGReader.h 756 B

12345678910111213141516171819202122232425262728293031323334353637
  1. #ifndef PNGREADER_H
  2. #define PNGREADER_H
  3. #include <png.h>
  4. typedef png_int_32 Color;
  5. class PNGReader final {
  6. const char* path;
  7. int width;
  8. int height;
  9. int channels;
  10. FILE* file;
  11. png_structp read;
  12. png_infop info;
  13. char** rowPointers;
  14. bool checkSignature();
  15. public:
  16. PNGReader(const char* path);
  17. ~PNGReader();
  18. PNGReader(const PNGReader& other) = delete;
  19. PNGReader(PNGReader&& other) = delete;
  20. PNGReader& operator=(const PNGReader& other) = delete;
  21. PNGReader& operator=(PNGReader&& other) = delete;
  22. int getWidth() const;
  23. int getHeight() const;
  24. int getChannels() const;
  25. int getBufferSize() const;
  26. bool hasError() const;
  27. bool readData(char* buffer);
  28. };
  29. #endif