La version PDF est plus récente que ce post, vous pouvez la télécherger ICI.
.:: Message personnel ::.
Je pense que je ne mes personne au courant en disant que le PNG (Portable Network Graphics) est relativement mal interprété par "Le Grand" Internet Explorer.
Je vais essayer de vous démontrez que malgré cet handicap il est possible d'utiliser du PNG sur une page Internet.
Je n'ai pas testé toutes les solutions présente dans ce tutorial, et oui cela prend un certain temps pour effectuer la rechercher et cela en prend encore plus de temps pour rediger un tutorial. J'espere que vous ferez part de vos exeperiance (surtout si vous avez testé les solutions proposée dans ce tutorial, vous pouvez aussi m'envoie vos exemples je les ajouterai aux tutorial).
Merci
Ce Tutorial/Astuce est disponible en version Forum, ICI et en version PDF, LA.
.:: Introduction ::.
Le format PNG (Portable Network Graphics) est un format de fichier graphique bitmap. Il a été mis au point en 1995 afin de fournir une alternative libre au format GIF, format propriétaire dont les droits sont détenus par la société Unisys (propriétaire de l'algorithme de compression LZW), ce qui oblige chaque éditeur de logiciel manipulant ce type de format à leur verser des droits. Ainsi PNG est également un acronyme récursif pour PNG's Not Gif.
.:: Caractéristique ::.
Le format PNG permet de stocker des images en noir et blanc, en couleurs réelles ainsi que des images indexées, faisant usage d'une palette de 256 couleurs.
De plus il supporte la transparence par couche alpha, c'est-à-dire la possibilité de définir 256 niveaux de transparence, tandis que le format GIF ne permet de définir qu'une seule couleur de la palette comme transparente. Il possède également une fonction d'entrelacement permettant d'afficher l'image progressivement.
La compression proposée par ce format est une compression sans perte (lossless compression) 5 à 25% meilleure que la compression GIF.
Il existe une version animée du PNG : le MNG. Malheureusement seul Mozilla le supporte. Ni Opera, ni Internet Explorer, ni Netscape 4 ne savent lire ces fichiers. Pour les animations le GIF reste donc obligatoire.
.:: Compatibilité et problèmes rencontrés ::.
Le PNG est correctement supporté et interprété par beaucoup de navigateur récent, malheureusement pour lui "Les Grands" de ce monde ne le supporte pas correctement.
Les navigateurs suivant gère correctement le PNG : Mozilla, Mozilla Firefox, K-Meleon, Opera, Netscape, pour plus information vous pouvez consultez cette page(en anglais).
Internet Explorer pour Windows, ne gère pas le PNG 24 mais gère très bien le PNG 8. Il n'est donc pas possible d'employer d'images avec une transparence graduelle sur 256 niveaux sur ce navigateur, mais il est possible après une petite manipulation qu'il affiche correctement un PNG 24bits avec 1 seule couleur de transparence.
La version Macintosh ne souffre pas de ce handicap. Mais là encore, la correction gamma semble incorrecte. C'est un des nombreux bugs de ce navigateur.
Photoshop, compresse assez mal le PNG. En effet, ce format possède plusieurs niveaux de compression, de 0 à 9 et Photoshop est bloqué à 6 sans qu'il soit possible de changer ce paramètre dans les options. La compression étant non destructive, le niveau 9 assure le même rendu à l'image tout en étant bien plus léger. De même, les images créées avec ce logiciel ne semblent pas prendre en compte la correction gamma correctement.
Mais la encore, il est possible de remédier à ce problème soit avec un programme supplémentaire ou avec un plug-in pour photoshop.
.:: Les avantages du PNG ::.
Le PNG présente de nombreux avantages en comparaison du GIF : il est plus léger, plus puissant, plus fiable et sous licence libre.
Voici deux liens comparant le PNG au format GIF et JPEG.
Comparaison PNG / GIF / JPEG avec une capture du logiciel WCPUID :
http://www.antp.be/PNG/wcpuid/
Comparaison PNG / GIF / JPEG avec une capture du Poste de travail de Windows :
http://www.antp.be/PNG/poste/
.:: Les inconvénients du PNG ::.
Il est mal géré par les programmes qui détiennent le monopole.
.:: Les outils ::.
Il est tout à fait possible de remplacer un GIF par un PNG, à condition de l'employer dans les mêmes conditions. Concernant les problèmes de poids, il y a 3 possibilité, on peut employer un plug-in pour Photoshop (superPNG - freeware), un petit logiciel (PngOptimizer - freeware) de nettoyage qui compresse mieux que Photoshop ou d'utiliser un outil plus performant sur ce point, comme Gimp.
Si vous utilisez des Gif sur votre site, vous pouvez les remplacer par un PNG 8bits (256 couleurs), le résulta sera le même et le pois pourra être plus légé. Pour un résulta optimal, optimiser votre image avec PngOptimizer.
Si maintenant vous souhaitez utiliser un PNG 24bits où + avec de la transparence, il est possible via une manipulation de rendre votre fichier PNG compatible avec Internet Explorer. Mais cela ne sera possible que si vous utilisez une seule couleur de transparence.
La démarche est simple, vous créez votre image, vous n'utilisez qu'une seule couleur pour la transparence (comme pour le format gif), vous ouvrez votre image avec (TweakPNG - opensource) et vous supprimer la couche gAMA (cette même couche qui est si mal interprétée par Internet Explorer). Voici un petit tutorial.
Voila déjà quelques problèmes de résolut. Mais certain d'entre vous en voudrons plus, alors je vais vous donner quelques quelque solutions qui malheureusement ne fonctionne pas à 100%. Il s'agit principalement de Hack ou d'astace qui permette à Internet Explorer d'afficher un PNG avec une couche alpha.
1ere solution : (bidouiller les css)
Internet Explorer supporte partiellement le format PNG, le canal alpha n'est pas spontanément appliqué. Il existe une méthode permettant à Internet Explorer versions 5.5 et ultérieures d'afficher correctement les images avec canal alpha, noter que cette méthode ne s'applique qu'aux balises <img/> et qu'aux directives CSS background[-image].
Il s'agit de la directive CSS non-officielle "filter" utilisant une commande propriétaire : AlphaImageLoader. Ainsi pour afficher une image au format PNG, au lieu d'utiliser :
Code : Tout sélectionner
<img src="foo.png" />
Code : Tout sélectionner
<img src="blank.gif" style="width:100px; height: 64px; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='foo.png', sizingMethod='scale');" />
Code : Tout sélectionner
<div style="background: url(foo.png);"></div>
Code : Tout sélectionner
<div style="background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='foo.png', sizingMethod='scale');"></div>
http://fashion.hosmoz.net/blog/2005/01/ ... ansparents
3eme solution : (il s'agit du même principe que la 2eme solution, donc même problème. De plus son code est beaucoup plus indigeste)
http://www.mambofrance.org/Dossiers/Tem ... ns_IE.html
4eme solution : (Dans le même style que la première solution, mais automatisée cette fois. D'après les utilisateurs cela fonctionne relativement bien.)
http://webfx.eae.net/dhtml/pngbehavior/pngbehavior.html
5eme solution : (je n'ai pas compris grand chose aux explication, vous comprendez en allant voir le site, ce script a l'air de fonctionner sur le même principe que la 4eme solution sauf qu'il est adaptable aux images et aux background. Contrairement à la 2eme et 3eme solution, il ne remplace pas les balises <img> par un span, mais il interagit sur le src du lien qui appel cette image).
http://arcok.ujevangelizacio.hu/bubu/ex ... e-png.html
6eme solution : (Ce script fonctionne sur le même principe que la 1ere et la 4eme solution, sauf qu'il est réalisé en php. Il est donc utilisé coté serveur ce qui me semble intéressent si le javascript était désactivé)
http://www.koivi.com/ie-png-transparency/
.:: Les liens ::.
Fichier PDF : http://www.pspliberte.com/tuto/psd.pdf
PNG : http://www.libpng.org/pub/png/
MNG : http://www.libpng.org/pub/mng/
Liste des navigateurs qui gère le PNG : http://www.libpng.org/pub/png/pngapbr.html
Comparaison PNG / GIF / JPEG avec une capture du logiciel WCPUID : http://www.antp.be/PNG/wcpuid/
Comparaison PNG / GIF / JPEG avec une capture du Poste de travail de Windows : http://www.antp.be/PNG/poste/
SuperPNG : http://www.fnordware.com/superpng/
PngOptimize : http://www.psydk.org/PngOptimizer.php
Tweakpng : http://entropymine.com/jason/tweakpng/
Tutorial pour Tweakpng : http://www.antp.be/PNG/tweakpng/.
.:: Les solutions proposée ::.
Solution 2 : http://fashion.hosmoz.net/blog/2005/01/ ... ansparents
Solution 3 : http://www.mambofrance.org/Dossiers/Tem ... ns_IE.html
Solution 4 : http://webfx.eae.net/dhtml/pngbehavior/pngbehavior.html
Solution 5 : http://arcok.ujevangelizacio.hu/bubu/ex ... e-png.html
Solution 6 : http://www.koivi.com/ie-png-transparency/
Voila, si vous souhaite ajouter quelques chose n'hesiter surtout pas. Et si vous testez les différentes solutions il peut être intéressant de les commanter. je n'ai malheuresement pas eu le temps de le faire. Donc tout les testeurs sont les bienvenues
