Tout d'abord, vous devez charger l'image GIF avec la fonction ImageCreateFromGif () . Cette fonction renvoie une ressource d'image.
<span><span><span class="hljs-variable">$filename</span></span><span> = </span><span><span class="hljs-string">'example.gif'</span></span><span>;
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefromgif</span></span><span>(</span><span><span class="hljs-variable">$filename</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-keyword">die</span></span><span>(</span><span><span class="hljs-string">'Impossible de charger GIF image'</span></span><span>);
}
</span></span>
Ensuite, appelez la fonction ImageColOrStotal et passez dans la ressource d'image qui vient de charger pour obtenir le nombre total de couleurs.
<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>
Vous pouvez sortir directement la quantité de couleur et confirmer le résultat.
<span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"image中使用的颜色总数是: "</span></span><span> . </span><span><span class="hljs-variable">$colorCount</span></span><span>;
</span></span>
Après avoir utilisé la ressource d'image, il est préférable de le détruire et de libérer de la mémoire.
<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><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$filename</span></span><span> = </span><span><span class="hljs-string">'example.gif'</span></span><span>;
</span><span><span class="hljs-variable">$image</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagecreatefromgif</span></span><span>(</span><span><span class="hljs-variable">$filename</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-keyword">die</span></span><span>(</span><span><span class="hljs-string">'Impossible de charger GIF 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-keyword">echo</span></span><span> </span><span><span class="hljs-string">"image中使用的颜色总数是: "</span></span><span> . </span><span><span class="hljs-variable">$colorCount</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>
Assurez-vous que votre environnement PHP a la bibliothèque GD activée, sinon les fonctions associées ne seront pas utilisées.
ImageColOrStotal ne convient qu'aux images de palette, et le résultat renvoyé par de vraies images en couleur est généralement 0.
Les images GIF peuvent utiliser jusqu'à 256 couleurs, de sorte que la valeur de retour maximale ne dépassera pas 256.