/** * \file compress.h * \brief Déclaration pour la (dé)compression d’images */ #ifndef SRC_COMPRESS_H_ #define SRC_COMPRESS_H_ #include "ppm.h" #define DEFAULT_COMPRESSED_NAME "output.su" /// Teste l’éligibilité d’un pixel à une zone int32_t sameColor(Pixel *t_pixel, Zone *t_zone); /// Ajoute un pixel et ses pixels connexes à une zone void addPixelToSelectedZone(Image *t_img, int64_t t_idx, Zone *t_zone); /// Sélectionne la zone correspondant à la couleur d'un pixel void chooseZoneForPixel(Image *t_img, int64_t t_idx, darray *zones); /// Créé les zones d'une image darray *imgToZones(Image *t_img); /// Écrit tous les \ref Segment d’une zone dans le fichier de sortie void write_segments(FILE *t_output, darray *t_segments); /// Écrit les données compressées dans le fichier de sortie void write_compressed_file(Image *t_img, FILE *t_output, darray *t_zones); /// Compresse l'image d'entrée void compress(const char *t_input_file, const char *t_output_file, int32_t tolerance); #endif /* SRC_COMPRESS_H_ */