Si vous ne connaissez pas le mode de fonctionnement du PNG le voici en quelques mots. (vous pouvez aussi passer ce paragraphe si vous vous en fichez) Ça marche en deux étape : la première transforme l'image en 2 dimensions en une série d'octets (1 dimension donc) grâce à un ou plusieurs des 5 filtres possibles. Ensuite, ces données sont bêtement gzippées. Ça parait simple comme ça, mais sachant qu'il y a plusieurs modes de couleurs ou de transparences possibles (palette de 0 à 256 couleurs, 16 millions de couleurs, 256 tons de gris, transparence simple ou alpha) et qu'il y a plusieurs niveaux de compression zlib et quelques autres nuances, on se retrouve avec des centaines, voire des milliers de combinaisons possibles. Et j'allais oublier de parler des filtres. En gros, si vous voulez transformer une image en 2D en flux à 1D, vous pouvez commencer en haut à gauche, aller tout à droite, descendre d'une ligne et recommencer. Si votre image est composée d'un dégradé ou de rayures horizontales ça se compresse très bien car c'est très redondant: "noir noir noir noir noir noir noir noir<nouvelle ligne>blanc blanc blanc blanc blanc<etc...>" mais si vous avez des rayures verticales alors c'est moins bien "blanc, noir, blanc, noir, etc...". Dans ce cas vous pouvez parcourir les pixels de haut en bas et de gauche à droite plutôt. Etc, etc... Lisez l'article de Wikipedia
Donc je disais, ça marche. Et comme j'aime bien économiser gratuitement de la bande passante j'ai mis au point un petit script Batch qui teste à peu près toute les combinaisons grâce à ces excellents programmes (qui ont tous leur point fort et leur point faible). La recompression prendre quelques secondes pour une icones ou un bouton et une minute ou deux pour une bannière ou une petite capture d'écran. Un fichier de backup ".bak" est automatiquement créé. Sachez aussi que toute information supplémentaire (qui n'est pas vitale) est retirée. Ça inclut le nom du logiciel de retouche que vous avez utilisé, l'heure associée à l'image (qui de toute façon est stockée dans le système de fichier) ou la gamma associée à l'image.
Comment l'installer ?
Créez un dossier "OptiPNG" dans votre répertoire "Program Files". Téléchargez les programmes pngcrush, OptiPNG, AdvanceCOMP et PNGOut, puis décompressez-les dans ce nouveau dossier.
Sauvegardez ce script sous le nom "png.bat" (ou ce que vous voulez en fait)
Code : Tout sélectionner
@echo off
copy %1 %1.bak.2
@echo on
"C:\Program Files\OptiPNG\pngout.exe" /y /ktRNS /f0 %1 %1
"C:\Program Files\OptiPNG\pngout.exe" /y /ktRNS /f1 %1 %1
"C:\Program Files\OptiPNG\pngout.exe" /y /ktRNS /f2 %1 %1
"C:\Program Files\OptiPNG\pngout.exe" /y /ktRNS /f3 %1 %1
"C:\Program Files\OptiPNG\pngout.exe" /y /ktRNS /f4 %1 %1
"C:\Program Files\OptiPNG\pngout.exe" /y /ktRNS /f5 %1 %1
"C:\Program Files\OptiPNG\advpng.exe" -z -4 %1
"C:\Program Files\OptiPNG\pngcrush.exe" -brute -l 9 -zmem 9 -reduce -nofilecheck %1 %1.tmp
@echo off
del %1
rename %1.tmp %1
del %1.bak
@echo on
"C:\Program Files\OptiPNG\optipng.exe" -zc1-9 -zm1-9 -zs0-3 -f0-5 %1
"C:\Program Files\OptiPNG\advpng.exe" -z -4 %1
"C:\Program Files\OptiPNG\pngout.exe" /y /d0 /ktRNS /f0 %1 %1
"C:\Program Files\OptiPNG\pngout.exe" /y /d0 /ktRNS /f1 %1 %1
"C:\Program Files\OptiPNG\pngout.exe" /y /d0 /ktRNS /f2 %1 %1
"C:\Program Files\OptiPNG\pngout.exe" /y /d0 /ktRNS /f3 %1 %1
"C:\Program Files\OptiPNG\pngout.exe" /y /d0 /ktRNS /f4 %1 %1
"C:\Program Files\OptiPNG\pngout.exe" /y /d0 /ktRNS /f5 %1 %1
@echo off
rename %1.bak.2 %1.bak
@echo onOuvrez une fenêtre DOS (Windows+R puis "cmd"), allez dans le dossier de l'image à recompressez et exécutez
Code : Tout sélectionner
"C:\Program Files\OptiPNG\png.bat" icone.pngÇa peut sembler beaucoup de tracas pour pas grand-chose, mais j'aime bien l'idée d'économiser de la bande passante gratuitement (à part quelques secondes de CPU). En vous souhaitant bon usage