2004-07-13

PngOptimizer 1.4

Voici la nouvelle version de mon utilitaire de conversion/recompression d'images. J'avais déjà entamé la nouvelle version en début d'année, mais je souhaitais ajouter la possibilité d'appeler PngOptimizer en ligne de commande depuis une fenêtre console. J'avais été confronté à un problème de design de Windows qui m'empêchait de faire ce que je voulais.

Après plusieurs mois de réflexion, j'ai décidé de livrer deux versions de PngOptimizer dans la même archive. La première fonctionne en mode graphique, la deuxième en mode console. Vous pourrez lire le fichier Readme pour plus d'information sur les paramètres de la version console.

PngOptimizer compresse aussi un peu mieux, notamment les images en mode palette.

Enfin, PngOptimizer gère les chaines de caractères en Unicode, par conséquent vous pouvez avoir des noms de fichier avec pleins de caractères bizarres dedans (même s'il vaut mieux se limiter à l'ascii dans le cadre d'images allant sur le Web).

En passant PngOptimizer en Unicode, j'ai dû améliorer la dkstd pour y inclure davantage de fonctions utilisant les chaines Unicode. Le plus difficile pour moi a été une fonction qui permet de mettre en bas de casse ou haut de casse n'importe quel caractère Unicode. J'en parlerai plus en détail dans un prochain billet.

Enfin, je tiens à déclarer que Windows 98 est une catastrophe. Après m'être bien embêté à rendre PngOptimizer 100% Unicode, je me suis rendu compte qu'il ne fonctionnait plus sous ce « système d'exploitation » ! En fait, Windows 98, au lieu de mettre un message d'erreur pour dire que les fonctions ne sont pas disponibles, il ne dit rien. Seulement, toutes les fonctions Unicode appelées ne font rien... XD

Deux solutions s'offraient à moi : jeter la compatibilité avec les Windows au noyau 9x, ou me prendre la tête pour rendre PngOptimizer compatible avec les vieilles chaines de caractères. Dans un élan de bonté j'ai choisi la deuxième solution. Comme Windows 98 ne me donne aucune erreur au lancement sur le manque de support de telle ou telle fonction Unicode, j'ai dû passer en revue toutes les sources, à la main, pour déterminer dans quels cas j'avais besoin d'écrire une couche de compatibilité.

Comme j'ai aucun Windows 98 à portée de main, j'ai effectué tous mes tests avec VMWare (un outil fantastique d'émulation de PC). J'espère que je n'ai pas fait d'erreurs. Si vous êtes sous Windows 98, n'hésitez pas à me faire remonter d'éventuels problèmes, avant de désinstaller ce système de malheur et passer à un Windows avec un noyau NT (NT4, 2000, XP, etc.).

Sinon je tiens à remercier Anubis et Denis qui ont mis en péril leurs images pour leurs beta tests ^^,