2010-11-15 41 views
11

Voici une image: Gradient1 http://adamhaskell.net/img/gradient1.png
Cette image est un simple dégradé de noir à transparent enregistré en format PNG RVBA complet.Transparence alpha dans les images indexées-png

Voici la même image, converti en alpha indexées PNG par GIMP (Photoshop produit le même résultat)
Gradient2 http://adamhaskell.net/img/gradient1b.png
Comme vous pouvez le voir, le gradient est maintenant demi-opaque, semi-transparent.

Voici la même image à nouveau, mais cette fois il a été converti en alpha indexé PNG par un script PHP je l'ai écrit:
Gradient3 http://adamhaskell.net/img/gradient1c.png

Ma question est la suivante: Pourquoi GIMP et Photoshop incapable de soutenir partielle transparence dans les images indexées, quand le script PHP montre clairement qu'une telle image peut être créée sans problème?
Y at-il un problème avec une image dont la palette contient des informations alpha?
Une question plus liée à la programmation: cette transparence dans la dernière image fonctionne-t-elle dans Internet Explorer 6?

+0

'optipng -force' l'enregistre correctement comme indexé-alpha. –

Répondre

3

J'ai finalement trouvé la réponse réelle: Il y a une entrée de métadonnées qui vous permet de définir la valeur alpha de chaque couleur dans la table des couleurs. La plupart des programmes graphiques n'utilisent pas cela, mais ils existent et peuvent être utilisés, en particulier par GD.

+0

L'avez-vous fait à la main ou avec un plugin, parce que je ne peux pas l'imaginer à la main pour les images existantes. –

+0

J'utilise GD pour tous mes besoins d'image programmable;) –

+0

GD? Ai-je besoin d'être rappelé ou juste informé? (Pas de conception graphique, ou?) –

1

Oui, je sais ce que vous voulez dire. Fireworks est le seul programme d'édition d'image que je connaisse qui puisse créer et éditer PNG8 + Alpha sans problèmes. Je souhaite que plus de programmes de peinture supportent ce format car Fireworks est cher!

+2

[ImageAlpha] (http://pngmini.com) fait cela gratuitement et IMHO mieux que Fireworks. – Kornel

+0

Il existe également [Color quantizer (Windows)] (http://x128.ho.ua/color-quantizer.html) et [Pngnq (Windows et Mac)] (http://pngnq.sourceforge.net/). Le développeur de ce dernier veut faire un plugin GIMP, mais GIMP n'offre pas la palette, dit-il. Peut-être que quelqu'un avec plus de temps que moi peut le convaincre ou utiliser ceci ou quelque chose? Heh .. –

4

Une autre option en plus des feux d'artifice est pngquant, une application en ligne de commande qui convertira un png rgba en un png indexé avec transparence.

J'ai trouvé this post qui parle un peu plus de la façon de l'utiliser.

IE6 et les versions antérieures de Windows ne prennent pas en charge les fichiers PNG à transparence variable sans solutions de contournement ennuyeuses. Un fichier PNG indexé ne montrera que les parties entièrement opaques qui fonctionnent habituellement plutôt bien. Une ombre portée disparaîtrait mais les parties opaques du logo ou de l'icône continueraient à apparaître.

Cette page a une meilleure explication et des instructions avec plus d'outils de compression et quantification: .png http://calendar.perfplanet.com/2010/png-that-works/

4

Pour mémoire, PNG ne prend pas en charge littéralement des images indexées avec un canal alpha. Qu'est-ce qui se passe réellement, c'est que PNG vous permet d'ajouter des couleurs supplémentaires à la table de couleurs (c'est-à-dire index) avec des valeurs alpha dans ces couleurs ... pas un canal alpha complet. FWIW ...