Découvrez la couleur de fond transparente PNG sous Linux
2
Il semble que les fichiers PNG contiennent des informations sur la couleur d’arrière-plan des pixels transparents. Cela devient parfois visible lorsque vous utilisez cette image comme texture avec des paramètres incorrects.
Comment savoir sous Linux (idéalement en ligne de commande) quelle est la couleur des pixels transparents dans un fichier PNG?
Si un fichier bKGD est présent dans le fichier PNG, la sortie de pngcheck inclura quelque chose comme ceci:
morceau bKGD à l'offset 0x000a0, longueur 6 rouge = 0x00e0, vert = 0x00e0, bleu = 0x0080
Vous avez probablement déjà ImageMagick (version 6.6.9 ou ultérieure), vous pouvez donc également obtenir des informations sur le bloc bKGD, ainsi que de nombreux autres éléments, en tapant
identify -verbose file.png
et chercher
Couleur de fond: srgba (224,224,128,1)
png: bKGD: un morceau a été trouvé (voir Couleur de fond, ci-dessus)
Si seule "Couleur de fond" apparaît mais pas "png: bKGD: ...", alors identifier indique la couleur de fond par défaut d'ImageMagick et aucun fragment bKGD n'est présent dans le fichier PNG.
Merci! identifier est plus lisible, plus largement disponible et pngcheck ne semble pas montrer cette information pour les images en niveaux de gris: codepad.org/2yquVHrc
qubodup
Je ne pense pas que cela ait quelque chose à voir avec l'image en niveaux de gris, juste qu'il lui manque un morceau bKGD (qui est un morceau optionnel!). ImageMagick affichera une couleur d'arrière-plan car ImageMagick assume une couleur d'arrière-plan par défaut s'il n'en existe aucune dans le fichier PNG. Je vais mettre à jour la réponse.
Glenn Randers-Pehrson
0
La spécification PNG ( lien ) décrit le bloc tRNS où les informations de transparence sont stockées.
La bibliothèque de logiciels libpng peut lire et écrire des fichiers PNG, y compris les informations de transparence. Plus précisément, recherchez la fonction suivante:
Je vous remercie. Malheureusement, je ne peux pas programmer sur ce niveau, c'est pourquoi j'ai choisi superutilisateur et non superposable superuser.com/help/on-topic
La spécification PNG ( lien ) décrit le bloc tRNS où les informations de transparence sont stockées.
La bibliothèque de logiciels libpng peut lire et écrire des fichiers PNG, y compris les informations de transparence. Plus précisément, recherchez la fonction suivante:
la source