Je rencontre un problème avec la façon dont Photoshop gère les pixels complètement transparents lors de l'exportation au format PNG, ce qui signifie que les canaux de couleur rouge, vert et bleu de tous les pixels complètement transparents sont enregistrés sous la forme 0 au lieu de la couleur que je définis dans Photoshop .
Par exemple: j'ai un fichier PSD avec un masque de calque. Certaines parties colorées de l'image sont rendues complètement transparentes par le masque de calque, mais je veux toujours que les canaux de couleur d'origine soient écrits dans le fichier PNG au lieu de seulement 0.
(Oui, le format PNG lui - même contient des données RVB même pour des pixels entièrement transparents. C'est un problème avec Photoshop, pas PNG.)
Si vous vous demandez pourquoi avoir des données de couleur est important quand un pixel est complètement transparent, voici quelques cas d'utilisation:
- Le PNG est échantillonné à une résolution plus élevée que celle enregistrée sous et les valeurs échantillonnées sont interpolées entre les pixels voisins. Il peut en résulter un léger "halo" noir autour de l'image si l'interpolation n'est pas pondérée par la transparence. (Dans mon cas, ce suréchantillonnage se fait sur le GPU, ce qui pour des raisons de performances ne pèse pas sur la transparence.)
- Les canaux rouge, vert, bleu et alpha du fichier PNG sont utilisés à des fins autres que le stockage d'informations sur les couleurs. (Dans mon cas, j'utilise les quatre canaux pour stocker les données nécessaires aux calculs d'éclairage en temps réel.)
Merci de votre aide!
ÉDITER
Je vais essayer d'expliquer le problème que j'ai avec l'utilisation de certaines aides visuelles. Il est difficile de montrer des choses transparentes, mais j'espère que cela clarifie mon problème:
J'ai un fichier PSD avec une couche et un masque de couche. La couche de couleur ressemble à ceci:
Son masque de calque ressemble à ceci:
Si j'exporte ce fichier PSD au format PNG, j'obtiens ceci:
(Les régions blanches sont en effet transparentes; elles semblent juste blanches sur le fond blanc.)
Vous vous demandez peut-être: quel est le problème? Ça a l'air bien! Eh bien, le problème est avec les informations de couleur stockées dans ces pixels transparents. À l'aide d'un outil pour supprimer les données d'opacité du PNG tout en laissant le RVB intact, nous pouvons voir les informations de couleur que Photoshop enregistre sur les pixels transparents:
Comme vous pouvez le voir, Photoshop a remplacé les informations de couleur des pixels transparents par du noir. Alors que, avec les données d'opacité supprimées du PNG, je veux qu'il ressemble exactement au calque de couleur d'origine:
la source
Réponses:
J'ai trouvé une solution! Le plugin SuperPNG conservera les valeurs RVB pour les pixels transparents tant que vous ne cochez pas l'option "Nettoyer transparent".
la source