Détecter si un fichier image PNG est une image Transparente?
Je suis à la recherche d'un moyen rapide pour déterminer si une image PNG transparente a des fonctionnalités. Qui est de savoir si toute partie de l'image est translucide ou affiche un arrière-plan en quelque sorte. Quelqu'un connais un moyen simple de détecter ce?
Mise à JOUR: OK, il est moins compliqué ensuite de manière à tirer la spécification PNG et le piratage de code?
- Quels sont exactement ce que vous cherchez? La présence d'un canal alpha? La déclaration d'une couleur transparente dans un format PNG 8 bits palette? La présence de pixels entièrement transparents? Quid des pixels semi-transparents et les entrées de palette?
- Je suis à la recherche pour déterminer si un aspect de l'image PNG qui fait qu'une partie de l'image translucide et d'afficher l'arrière-plan de toute façon.
Vous devez vous connecter pour publier un commentaire.
Pourquoi ne pas simplement faire une boucle par tous les pixels de l'image et de vérifier leurs valeurs alpha?
Bien, je ne comprends toujours pas la question complètement, mais si vous voulez juste pour vérifier, si une image peut utiliser les fonctions de transparence, vous pouvez utiliser ce code:
Bien que ce ne sera pas vous aider à déterminer si un fichier png en fait une utilisation transparente de fonctionnalités, il vous indique qu'il a la couleur de type 4 ou 6 (à la fois en faveur de la transparence) selon png spécification de fichier.
Ici est une approche efficace:
Ouvrir le fichier PNG en binaire.
Chercher à l'octet 26 (25 si on compte à partir de zéro).
Évaluer la valeur de l'octet de la char:
2 ou moins => certainement opaque,
3 ou plus => prend en charge la transparence.
Selon mes constatations, les fichiers générés par Photoshop utiliser seulement 3 ou plus en cas de besoin ce qui en fait un moyen fiable de prévoir lors de l'utilisation de ces. Il semble que presque tous les fichiers ont 2 pour opaque et 6 pour l'alpha-mélangé.
Vous pouvez également envisager de vérification de la PNG et IHDR chaînes trouvées dans cette zone en général à toute épreuve de votre code.
pngcrush
utilitaire. Il (presque toujours) trouve le optimal des paramètres de compression pour une image donnée. Pas de perte de qualité, même si elle ne jetez la CPI, afin de l'utiliser sur sRGB fichiers seulement. Il permet souvent de réaliser plus de 30% de la taille lorsque le fichier est de la redoutable produits Microsoft. Il vient rarement le cas que Photoshop génère un fichier qui est seulement d'environ 0,1% plus petit que ce que pngcrush peut le faire, donc il y a des façons de l'améliorer.