2005-03-14

PngOptimizer 1.5

Après plusieurs semaines de dur labeur, voici une nouvelle version de mon outil de nettoyage et de recompression des images PNG.

J'y ai ajouté une nouvelle fonctionnalité qui répond à un besoin courant. Il m'arrive souvent de devoir décrire des procédures d'utilisation de logiciels, ou de faire de la hot line avec des amis. Pour illustrer ces procédures, je dois faire de nombreuses captures d'écran, et les envoyer via la messagerie instantanée.

C'était une tâche laborieuse. Faire la capture, ouvrir Photoshop, enregistrer pour le Web en PNG, nettoyer le PNG dégueux de Photoshop avec PngOptimizer, retrouver le fichier avec l'explorateur de fichiers, et enfin l'envoyer sur la messagerie.

J'ai souhaité réduire au maximum cette chaine. Désormais, PngOptimizer peut cracher un PNG à partir d'une image stockée dans le presse-papier de Windows, et notamment... une capture d'écran :) Plus besoin non plus d'aller dans l'explorateur de fichier, il suffit de déplacer un lien depuis PngOptimizer vers le logiciel de son choix... comme une fenêtre de messagerie instantanée :)

J'ai mis une illustration du concept sur la page de PngOptimizer, vers le bas. Pour des informations précises, consultez le Readme se trouvant dans le fichier Zip.

Vous noterez aussi une nouvelle icône, créée par Guillaume Schaeffer. Merci Guillaume, ta contribution est arrivée pile quand j'avais commencé le développement de la version 1.5 :)

PngOptimizer, le logo

J'en ai aussi profité pour faire pleins de petites améliorations. Voici une reprise en français du fichier Readme du produit.

  • Support complet de l'Unicode. Ça ce fut bien galère du coup de faire en sorte que ça fonctionne sous Windows 98. J'ai failli jeter la compatibilité avec cet OS vieillissant, mais pour cette fois encore j'ai fait un effort.
  • Il y avait une fuite mémoire dans le décodage du BMP et une dans le GIF. Merci à Fvr qui a trouvé le problème quand il a donné des dizaines de BMP énormes à manger à PngOptimizer.
  • J'ai ajouté une option pour garder les informations de couleur de fond. C'est en rapport avec une astuce pour éviter que la gestion de transparence alpha soit trop laide dans le navigateur obsolète.
  • La position et la taille de la fenêtre sont mémorisées.
  • Le contrôle d'affichage principal a été amélioré. On peut désormais scroller au clavier, à la molette, et l'affichage est un poil plus rapide.
  • Je fais faire le travail d'optimisation dans un thread à part désormais, comme ça vous pouvez icônifier ou déplacer PngOptimizer même quand il bosse.
  • La dkstd, et donc PngOptimizer, sait désormais décoder des BMP compressés. C'était beaucoup plus chiant à coder que prévu, mais ça fonctionne.
  • Support pour des noms de fichiers passés en paramètres. C'est pratique si on souhaite faire du drag-and-drop de fichiers vers l'exécutable de PngOptimizer, ou si on souhaite avoir une entrée « Envoyer vers PngOptimizer » dans le menu contextuel de l'explorateur de fichiers.

J'ai testé PngOptimizer sur toutes les configs d'amis que j'ai pu. À chaque fois je pensais avoir enfin la version finale. Eh bien non, je tombais toujours sur un problème particulier. Un petit exemple : le résultat d'une opération de drag-and-drop, quand c'est son propre logiciel qui est une source de données, est différent selon qu'on est sous Windows 98, Windows 2000, Windows XP et Windows XP SP2.

Oh, et de manière globale, je tiens à le dire, faire en sorte que son programme soit une source de drag-and-drop sous Windows, c'est un vrai chemin de croix. Il faut se plonger dans OLE, la technologie propriétaire Microsoft qui vous fait regretter d'être programmeur tellement c'est compliqué et inintéressant. J'y ai passé deux semaines. Tout ça pour avoir un pauvre curseur de souris tout moche dans le but d'échanger un nom de fichier avec une autre application. Éc½urant. Faites-moi un OS simple à programmer et joli à regarder... je suis preneur !

Bon en tout cas j'espère qu'il n'y a plus aucun bug. J'ai vraiment fait mon possible pour fignoler et polir cette version. Si jamais vous trouvez un problème, n'hésitez pas à me contacter. Si vous aimez le logiciel, contactez-moi aussi, je suis preneur, faire plaisir constitue ma récompense :)