PNG 8 Bits avec transparence Alpha, c'est possible!

Posé ici le jeudi 13 novembre 2008 à 09:49 par Jay Salvat

PNG-8 avec transparence Alpha, c'est possible !

Contrairement à ce qu'on peut penser, le PNG 8 bits n'est pas l'équivalent du GIF. Le PNG-8 permet une bien meilleure gestion de transparence. Alors qu'un simple GIF ne permet que la définition de la transparence sur 1 bit (qu'une couleur), le PNG permet d'aller plus loin dans les nuances de transparence grâce aux couches Alpha (je parle bien ici du 8 bits et non 32 bits). Mieux encore ces niveaux de transparence seront parfaitement ignorés par les navigateurs anciens. Faisons un petit tour de ce format et de ses options méconnues.

Merci Fireworks !

Pour le moment, seul Fireworks semble tirer partie de ces possibilités avancées. Adobe étant maintenant propriétaire de Fireworks, il y a fort à parier que cette option sera implémentée dans de futures versions de Photoshop (Je n'ai pas eu l'occasion de tester CS4 à l'heure où j'écris ces lignes). Cette option s'appelle Transparence Alpha et est entre autre cachée dans le panneau Optimiser de Fireworks.

Comparaison des différentes options

Voici quelques copies d'écrans de différentes options de transparences que propose le PNG ainsi que la différence de rendu sur navigateurs modernes et plus anciens. A noter que ce format est idéal pour agrémenter vos images d'effets d'ombres et lueurs sans trop les alourdir ni truffer vos pages de hacks Css (Vous savez ? les poétiques progid:DXImageTransform.Microsoft.AlphaImageLoader dont Microsoft à la secret) ou de solutions Javascript pour contrer le manque de support de Internet Explorer 6.

Prenons un joli fond chargé et une sympathique citrouille (je sais, je suis un peu en retard sur Halloween).

Une citrouille

Puis un peu de Html et Css pour faire nos essais.

HTML
<div id="fond">
    <img id="citrouille" src="citrouille.png" />
</div>
CSS
#fond{
    width:650px; height:400px;
    background:url(background.png);
    position:relative;
}
#citrouille {
    position:absolute;
    left:0; top:0;
}

Comparons maintenant les résultats.

PNG 8 bits avec transparence 1 bit

PNG 8 bits

Ici, on obtient une transparence 1 bit typique. Une couleur est définie comme transparente, pas de nuance, la bordure transparent/visible est tranchée. Autant dire que l'utilité est limitée.

PNG 32 bits avec transparence Alpha

PNG 32 bits

Maintenant la transparence est parfaite sur les navigateurs modernes. Seulement, en plus d'apporter un poids d'image décuplé, la transparence n'est pas supportée par Internet Explorer 6 laissant un fond gris opaque.

PNG 8 bits avec transparence Alpha, magique !

PNG 8 bits avec transparence Alpha

La solution la plus parfaite. Avec l'option Transparence Alpha de Fireworks on obtient les avantages d'une images légère 8 bits et d'une presque transparence 32 bits. L'effet de transparence (ici ombre et lueur) est parfaitement ignoré par les navigateurs anciens permettant ainsi d'utiliser cette image en toute circonstance sans se soucier de la dégradation.

Précaution

Vu que les pixels même légèrement transparents sont totalement ignorés par les vieux navigateurs, il faudra se méfier des images translucides. Comme le montre l'exemple ci-dessous, une image à 50% de transparence (ou même quelques pourcents !) sera totalement ignorée.

PNG 8 bits avec transparence Alpha

Trackbacks

0 trackback

Commentaires

7 commentaires

A noter le petit logiciel libre "pngnq", qui permet de convertir n'importe quel PNG24 bits en ce fameux PNG8 bits avec alpha :) (et ça compresse sans perte par la même occasion).

1. Par Damien le lundi 17 novembre 2008 à 18:03

Merci du complément d'info. Je file voir pngnq.

2. Par Jay Salvat le lundi 17 novembre 2008 à 20:52

J'ai toujours crié sur les toits que la transparence alpha était impossible en png 8 bits ARGH !

Chapeau.

3. Par Vincent Voyer le mardi 18 novembre 2008 à 14:45

t'as vu un peu l'app de geek que c'est ton PNGNQ ??? :D faut faire partie de quel club de WOW pour s'en servir ?

4. Par Vrai nom apprécié le mardi 25 novembre 2008 à 10:44

C'est super cool, mais en revanche, lorsque j'ai voulu le mettre en oeuvre, mes icones qui étaient dans des tons bleus, apparaissent sur le site en "marronnasse" comme si certaines couleurs (dont le bleu avaient été supprimées. En revanche, l'aperçu de mon image dans mon explorateur windows les affichent avec les bonnes couleurs..
Quelqu'un a-t-il eu ce même pb ou c'est moi qui fait qq chose de travers ?
Quelqu'un aurait-il svp une solution ?
Merci et excellente soirée !!

5. Par Patoch le jeudi 07 mai 2009 à 01:06

Bonjour Patoch,

Je n'ai jamais eu ce genre de problème, désolé :)

6. Par Jay Salvat le lundi 11 mai 2009 à 17:09

A noter également pour mac OSX, une interface graphique de pngnq : Pornel.net/imagealpha

7. Par Damino le jeudi 11 mars 2010 à 09:15

Obligatoire. Vrai nom apprécié.

Il ne sera ni affiché, ni spammé.

Votre blog ou votre site web.

Constructif, courtois et correctement écrit. SMS proscrit. Merci.