Compression d'Images
Presentation
Objectif principal : Un outil pour compresser des images en batch. Tu lui donnes un dossier d'images, il les compresse toutes en gardant une qualite acceptable. Utile pour optimiser les images d'un site web.
Technologies utilisees : Python avec Pillow (PIL) pour manipuler les images. J'utilise les algos de compression JPEG et PNG avec differents niveaux de qualite.
Fonctionnalites cles : Compression batch, choix du niveau de qualite, redimensionnement optionnel, conversion de format (PNG vers JPEG), comparaison avant/apres avec taille et PSNR.
Livrables attendus : Script CLI qui prend un dossier source et un dossier destination. Options pour qualite, taille max, format de sortie.
Calendrier previsionnel : Une semaine. Pillow c'est simple a utiliser, le plus long c'etait de trouver les bons parametres de qualite.
Parties prenantes & criteres de succes : Projet pour optimiser les images de mon portfolio. Le but c'etait de reduire la taille de 70% minimum sans degradation visible.
Le Defi
Trouver le bon equilibre qualite/taille. Une image JPEG a 60% de qualite c'est 5x plus leger mais ca se voit. A 85% ca se voit presque pas mais c'est que 2x plus leger. Faut trouver le sweet spot.
La Solution
J'ai implemente un mode "auto" qui teste plusieurs qualites et garde celle qui respecte une taille cible tout en maximisant le PSNR (Peak Signal-to-Noise Ratio). En gros, il trouve automatiquement la meilleure qualite pour une taille donnee.
Architecture Technique
Module compressor.py avec fonctions compress_jpeg, compress_png, resize. Module analyzer.py qui calcule le PSNR et compare les images. Module batch.py qui parcourt les dossiers. Le mode auto fait une recherche binaire sur le parametre qualite.
Points Cles
- Mode auto avec optimisation PSNR
- Traitement batch de dossiers
- Rapport de compression detaille
Apercu
Resultats & Apprentissages
J'ai reduit les images de mon portfolio de 15 Mo a 4 Mo sans perte visible. Le site charge beaucoup plus vite. J'ai appris comment fonctionne la compression JPEG (DCT, quantification) et le PSNR pour mesurer la qualite.
Evolutions Futures
Support WebP qui est encore mieux pour le web. Interface graphique avec preview avant/apres. Compression intelligente qui detecte les zones de l'image ou on peut compresser plus.