#ifndef COMPRESSION_QUADTREE_HPP #define COMPRESSION_QUADTREE_HPP 1 #include #include class QuadTree { // Niveau de qualité de l'image // 0 -> qualité minimale // 10 -> qualité maximale short niveau; // La couleur majoritaire dans l'image SDL_Color couleur; // Dimensions 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 la surface bool final; // Format de l'image (SDL_PixelFormatEnum) Uint32 format; // Calcule la couleur qui apparaît majoritairement dans la surface SDL_Color calculeCouleur(SDL_Surface *); // Vrai si tout les pixels de la surface ont la même couleur bool verificationEgalitee(SDL_Surface *); // Sépare l'image en 4 std::array coupeEnQuatre(SDL_Surface *); // Fusionne 4 images en une SDL_Surface * colleQuatreImages(std::array); public: QuadTree(SDL_Surface *, short = 0); // Renvoie l'image avec un certain niveau de compression SDL_Surface * image(short); }; #endif