2007-04-16

PngOptimizer 1.6

Après trois mois à sacrifier mes week-ends et mes jours de congé, j'ai le plaisir de vous proposer le nouveau PngOptimizer en téléchargement ^^

Au menu, bien sûr, des nouvelles fonctionnalités et des corrections de bugs, mais aussi un changement spécifique : PngOptimizer devient Open Source. Après avoir potassé les licences disponibles, j'ai opté pour la GNU GPL. Faire de l'Open Source ça prend mine de rien plus de temps qu'un simple freeware, puisqu'il faut prendre garde à packager le code correctement. Mais il faut ce qu'il faut :)

Merci aux bêta-testeurs pour leurs tests (Constance, Sined, Sylvain). Merci à Vincent pour les conseils sur certains choix stratégiques. Re-merci à Sylvain pour le code assembleur de division 64 bits sous VC8 :) Sans plus attendre, le changelog (à retrouver en anglais dans le zip à télécharger) :

Nouveau, promo au rayon charcuterie

  • Le moteur d'optimisation a été amélioré (bon comme d'hab, le temps d'optimisation est devenu plus long, mais on devrait gagner quelques milligrammes d'octets).
  • Aaaaaaah ça on me l'a beaucoup demandé : PngOptimizer ne crache plus un PNG plus gros s'il ne sait pas faire mieux. Il se contente de cracher un PNG nettoyé (genre les chunks de gamma de Toshop qui assombrissent l'image). À vous les joies de l'optimisation extrême par les divers utilitaires du Web. En dernier lieu vous pourrez sans crainte passer ces PNG à PngOptimizer.
  • On peut désormais déposer un dossier pour optimiser récursivement tout ce qu'il contient.
  • PngOptimizer sait decruncher du TGA (mais si vous savez, ce vieux format pour lequel il est très facile de créer un bout de code qui crache une image 24 bits, notamment dans les jeux).
  • Les décodeurs d'images ont été rendus plus robustes, et le support du BMP a été étendu (pleins de variantes bizarres pour lesquelles j'ai obtenu la documentation de la part d'un vieil indien mexicain lors de ma visite des pyramides de Teotihuacán).
  • On peut optimiser les captures d'écran.
  • On peut activer une demande de nom de fichier pour les captures d'écran.
  • Les options de configuration sont désormais stockées dans un fichier et plus dans la base de registre. Le fichier de configuration se trouve par défaut dans votre profil Windows, mais vous pouvez aussi en mettre un dans le dossier de l'application, auquel cas PngOptimizer utilisera celui-là. Ça permet d'utiliser PngOptimizer depuis une clé USB tout en transportant sa configuration avec soi.

Sparadraps

  • Un bug pour les images 32 bits avec plus d'une couleur totalement transparente et candidate à la conversion en mode palette et représentant une vache broutant du trèfle (non testé avec des pissenlits).
  • Un euh... bug ? Mon loader de BMP refusait de lire les images 24 bits qui indiquent un nombre de couleur pour la palette différent de 0. Ça me semblait logique mais bon, sûrement un encodeur curieux, et comme le BMP n'est pas une norme et qu'on ne sait rien sur le sujet, j'ai décidé de supporter cette variante.
  • Un bug au décodage d'un GIF possédant une palette locale.
  • On ne pouvait pas déposer le lien d'un screenshot vers certaines applications.
  • PngOptimizer se plaignait qu'un fichier était en lecture-seule même quand ce fichier n'était pas écrasé (genre un GIF en lecture seule posait problème alors qu'un fichier PNG est généré dans ces cas là).
  • PngOptimizer bloquait à l'optimisation pour les fichiers passés en paramètre (oui, on peut se créer un lien « Envoyer vers PngOptimizer » dans le menu contextuel, je sais qu'au moins une personne l'utilise :))

Dans les entrailles

  • PngOptimizer utilise désormais le ChuSDK, avec en tête de gondole la chustd, une bibliothèque servant de base au développement C++ et qui remplace la libc.
  • L'architecture interne a été améliorée, notamment la façon de gérer les différents essais internes d'optimisation. Ça implique un code moins crashogène.

Divers

  • J'ai abandonné le support de Windows 98/Me. Ça devenait trop pénible. Je l'avais encore gardé pour PngOptimizer 1.5 en 2005, mais en 2007 y'en a assez :) En prime l'exécutable a maigri de 8 Ko. Peut-être qu'il tourne quand même sous Windows 98 avec la DLL d'émulation Unicode, je n'ai pas testé, avis à ceux qui s'ennuient le week-end.
  • J'ai retiré l'adresse de courriel du menu contextuel, mon pénis n'a pas besoin d'être enlargé, merci.
  • L'exécutable est plus petit, prend moins de mémoire à froid, a une dépendance en moins à une DLL et rend l'haleine fraiche.

Bonnes optimisations... :)