Dans le traitement d'image, il est une exigence commune de comprendre le nombre de couleurs contenues dans une image. Pour les images PNG, ce processus est un peu plus compliqué car le format PNG prend en charge la transparence et les modèles de couleurs multiples. Heureusement, PHP fournit des fonctions intégrées qui peuvent nous aider à obtenir facilement ces informations.
Cet article expliquera en détail comment utiliser les fonctions ImageColOrStotal et ImageCreateFrommpng pour obtenir le nombre total de couleurs dans une image PNG.
La fonction ImageCreateFrommpng est utilisée pour créer une ressource d'image à partir d'un fichier PNG. Sa fonction est de lire une image PNG et de la convertir en une ressource d'image que PHP peut traiter. Après cela, nous pouvons effectuer diverses opérations sur cette ressource d'image.
Prototype de fonction:
<span><span>resource </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$filename</span></span><span>);
</span></span>
paramètre:
$ Nom de fichier : le chemin d'accès au fichier d'image PNG.
Valeur de retour:
Lorsque vous réussissez, renvoyez une ressource d'image. Renvoie false lors de l'échec.
La fonction ImageColOrStotal renvoie le nombre total de couleurs différentes utilisées dans une image. Il est basé sur la palette de couleurs de l'image pour calculer le nombre de couleurs, il fonctionne donc pour des images avec des motifs de couleurs indexés.
Prototype de fonction:
<span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-title function_ invoke__">imagecolorstotal</span></span><span>(resource </span><span><span class="hljs-variable">$image</span></span><span>);
</span></span>
paramètre:
$ Image : Ressource d'image.
Valeur de retour:
Renvoie le nombre total de couleurs utilisées dans l'image. Si l'image utilise le mode de couleur directe (comme RVB), cette valeur est généralement 0.
En combinant ces deux fonctions, nous pouvons facilement obtenir le nombre de couleurs dans l'image PNG. Les étapes spécifiques sont les suivantes:
Utilisez ImageCreateFrommpng pour ouvrir un fichier image PNG et obtenir des ressources d'image.
Utilisez la fonction ImageColOrStotal pour obtenir le nombre total de couleurs utilisées dans l'image.
Résultat de sortie.
Voici un exemple complet de code qui montre comment utiliser ces deux fonctions pour obtenir le nombre de couleurs dans une image PNG.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// installation PNG Chemin de fichier image</span></span><span>
</span><span><span class="hljs-variable">$imagePath</span></span><span> = </span><span><span class="hljs-string">'example.png'</span></span><span>;
</span><span><span class="hljs-comment">// Essayer de PNG Ressources d'image de création de fichiers</span></span><span>
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefrompng</span></span><span>(</span><span><span class="hljs-variable">$imagePath</span></span><span>);
</span><span><span class="hljs-comment">// Vérifiez si la ressource d'image est créée avec succès</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$image</span></span><span> === </span><span><span class="hljs-literal">false</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Impossible de créer des ressources d'image。Veuillez vérifier si le chemin du fichier est correct。"</span></span><span>;
</span><span><span class="hljs-keyword">exit</span></span><span>;
}
</span><span><span class="hljs-comment">// Obtenez le nombre de couleurs utilisées dans l'image</span></span><span>
</span><span><span class="hljs-variable">$colorCount</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecolorstotal</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-comment">// Numéro de couleur de sortie</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Devrait PNG Le nombre total de couleurs incluses dans l'image est: "</span></span><span> . </span><span><span class="hljs-variable">$colorCount</span></span><span>;
</span><span><span class="hljs-comment">// Libérez des ressources d'image</span></span><span>
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$image</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
Création de ressources d'image : Chargez le fichier PNG spécifié dans la variable d'image $ via la fonction ImageCreateFrommpng . Si le chemin du fichier image est incorrect ou si le fichier ne peut pas être lu, la fonction renvoie false , nous devons le vérifier et le traiter en conséquence.
Obtenez le nombre de couleurs : la fonction ImageColOrStotal renvoie le nombre de différentes couleurs utilisées dans l'image. Pour les images PNG, en particulier les PNG qui utilisent le mode couleur indexé, le nombre de couleurs renvoyé sera non nulle. Si l'image utilise le mode couleur directe (comme RVB), la fonction renvoie 0.
Ressource gratuite : Enfin, utilisez la fonction IMAgestroy pour libérer des ressources d'image pour éviter les fuites de mémoire.
Si l'image utilise une palette (c'est-à-dire le mode couleur indexé), ImageColOrStotal renvoie le nombre réel de couleurs. Cependant, si l'image utilise le mode de couleur directe (RVB), cette fonction renvoie 0, vous devez donc faire attention au mode couleur de l'image lorsque vous l'utilisez.
Si les fichiers d'image avec lesquels vous avez affaire sont grands ou nécessitent des opérations fréquentes comme celle-ci, il est recommandé d'ajouter une gestion des exceptions et des erreurs appropriées au code.
En utilisant des fonctions ImageCreateFrommpng et ImageColOrStotal , PHP fournit un moyen facile et efficace d'obtenir le nombre total de couleurs d'une image PNG. Ceci est très utile pour l'analyse, l'optimisation et le traitement d'images. J'espère que cet article vous aidera à mieux comprendre ces deux fonctions et les appliquer dans votre projet.
Étiquettes associées:
PNG