Ce module permet de compresser une image PNG carrée avec différentes méthodes toutes basées sur les Quadtrees.
Un quadtree est un arbre spécial qui définit chaque nœud comme ayant quatre enfants. Ils sont très utiles pour subdiviser un espace 2D en le fractionnant récursivement en quatre quadrants. Plus d'informations ici
Exemple de Quadtree
Compression Quadtree d'une image étape par étape
Le module utilise deux types de compressions différentes.
On peut définir une dégradation maximale autorisée sous la forme d’un entier Delta compris entre [0:255] Les feuilles F1, F2, F3, F4 d’un même noeud N sont supprimées ssi l'écart colorimétrique du noeud père est inférieur ou égal à delta.
On peut également définir la compression en fonction d’un poids maximum souhaité, ce qui peut se traduire par un entier phi > 0 représentant le nombre maximum de feuilles autorisées dans l’arbre. Les feuilles sont alors élaguées par ordre croissant de l'écart colorimétrique. Le gif ci-dessus représente cette compression.
Un fichier ".jar" est intégré dans le projet. Il est possible de le lancer avec différents paramètres selon les besoins de l'utilisateur.
L'exécution simple consiste à se placer dans le répertoire contenant le fichier ".jar" et taper la ligne de commande suivante :
java -jar BitmapCompression.jar <sourceDuFichierPNGACompresser> <valeurCompressionDelta> <valeurCompressionPhi>
sourceDuFichierPNGACompresser : Adresse du fichier PNG depuis la localisation du fichier BitmapCompression.jar OU adresse du fichier complète depuis la racine de l'ordinateur.
valeurCompressionDelta : Elle doit être comprise entre 0 et 255
valeurCompressionPhi : Elle doit être plus grande que 0
java -jar BitmapCompression.jar images/512-books.png 160 23
A noter : Pour éviter tout problème, un dossier "images" est déjà présent. Le plus simple est donc de mettre les fichiers que l'on souhaite compresser dedans et ainsi <sourceDuFichierPNGACompresser>
aura pour valeur : images/<nomDeVotreFichier>.png
Le menu textuel est un menu dans la console qui vous proposera les différentes options possibles. Il vous guidera vers toutes les fonctionnalités possibles du module.
Pour se faire, placez-vous dans le dossier contenant le .jar
et tapez la ligne de commande suivante :
java -jar BitmapCompression.jar
L'interface graphique est une Java application intuitive qui permet de bénéficier de toutes les fonctionnalités du module par le biais d'un rendu graphique, clair et facile d'usage. Il s'agit en quelque sorte du Menu textuel en plus développé.
Pour utilisé le module via une interface graphique, placez-vous dans le dossier contenant le .jar
et tapez la ligne de commande suivante :
java -jar BitmapCompression.jar -a