#ifndef COMPRESSION_QUADTREE_HPP #define COMPRESSION_QUADTREE_HPP 1 #include #include class QuadTree { // Niveau de profondeur du morceau de l'image // 0 -> image de base // 10 -> image coupé en 4 short niveau; // La couleur qui est représentée SDL_Color couleur; // Dimensions du morceau de l'image std::pair dimensions; // Morceaux de l'image QuadTree * nord_ouest; QuadTree * nord_est; QuadTree * sud_ouest; QuadTree * sud_est; // Est vrai si l'on ne doit pas diviser l'image bool final; // Calcule la couleur qui apparaît majoritairement dans l'image SDL_Color calculeCouleur(SDL_Surface *); // Vrai si tout les pixels de l'images sont identiques bool verificationEgalitee(SDL_Surface *); // Coupe l'image en 4 std::array coupeEnQuatre(SDL_Surface *); // Colle 4 images en une seule SDL_Surface * colleQuatreImages(std::array); public: QuadTree(SDL_Surface *, short = 0); ~QuadTree(void); // Renvoie l'image avec un certain niveau de compression SDL_Surface * image(short); }; #endif