Skip to content

thomaslprr/BitmapCompression

Repository files navigation

BitmapCompression

Ce module permet de compresser une image PNG carrée avec différentes méthodes toutes basées sur les Quadtrees.

Quadtree

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

Exemple de Quadtree

Idée générale de la compression

Compression Quadtree d'une image étape par étape

Compression Quadtree d'une image étape par étape

Le module utilise deux types de compressions différentes.

Compression delta

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.

Compression phi

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.

Utilisation du module

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.

Exécution Simple

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

Exemple

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

Menu textuel

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

Interface graphique

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

Releases

No releases published

Packages

No packages published

Languages