<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Cette partie n'a rien à voir avec le contenu de l'article,Vous pouvez placer le code d'initialisation ou de configuration du programme</span></span><span>
</span><span><span class="hljs-title function_ invoke__">error_reporting</span></span><span>(E_ALL);
</span><span><span class="hljs-title function_ invoke__">ini_set</span></span><span>(</span><span><span class="hljs-string">'display_errors'</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
<span class="hljs-comment">/*
* Savez-vous comment savoir si une image doit être utiliséeimagepalettetotruecolorfonction?
*
* existerPHPLors du traitement des images,Surtout pour une utilisationGDLorsque la bibliothèque fonctionne,
* Nous rencontrons souvent des images de palette(palette-based image)Et de vraies images de couleurs(truecolor image)Deux types différents。
* imagepalettetotruecolorfonction就是用来将Palette图像转换成真彩色图像的un个重要工具。
*
* Donc,Comment déterminer si une image doit être appeléeimagepalettetotruecolorfonction呢?
*
* un、Qu'est-ce qu'une image de palette et une véritable image couleur?
* Les images de palette se réfèrent à l'index de couleur utilisé dans l'image(Palette)Au lieu d'un stockage directRGBvaleur,Habituellement, le nombre de couleurs est limité。
* Les vraies images couleur sont stockées directement dans chaque pixel.RGBvaleur,Richesse de couleurs,Et opération flexible。
*
* deux、Pourquoi avoir besoin de convertir?
* Certaines opérations d'image ne peuvent être efficaces que sur de vraies images en couleur,Par exemplealphaTraitement des canaux、Génération de gradient, etc.。
* 如果直接操作Palette图像,Les effets peuvent être limités ou indisponibles。
*
* trois、Comment juger?
* PHP GD库提供了fonctionimagesetthickness()Attendez les propriétés de l'image,但判断图像是否为Palette图像,
* 其实可以直接调用fonction:imageistruecolor()
*
* - imageistruecolor($image) 返回布尔valeur:
* - true 表示图像是un个真彩色图像
* - false 表示是Palette图像
*
* Exemple de code:
*/</span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">ensureTrueColor</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$imgResource</span></span></span><span>) {
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">imageistruecolor</span></span><span>(</span><span><span class="hljs-variable">$imgResource</span></span><span>)) {
</span><span><span class="hljs-variable">$trueColorImg</span></span><span> = </span><span><span class="hljs-title function_ invoke__">imagepalettetotruecolor</span></span><span>(</span><span><span class="hljs-variable">$imgResource</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">imagedestroy</span></span><span>(</span><span><span class="hljs-variable">$imgResource</span></span><span>); </span><span><span class="hljs-comment">// Libérer les ressources d'image originales</span></span><span>
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$trueColorImg</span></span><span>;
}
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$imgResource</span></span><span>;
}
<span class="hljs-comment">/*
* 以上fonction接收un个图像资源,Si ce n'est pas une vraie image couleur,Le convertir en une vraie image couleur。
* 这un步骤exister处理PNG、GIF等Palette图像时非常常用。
*
* Quatre、Résumer
* Déterminez s'il est nécessaire de l'utiliserimagepalettetotruecolorfonction的关键点exister于调用imageistruecolorfonction,
* Si retourfalse,Il doit être converti en une vraie image couleur,Pour assurer l'effet et la compatibilité du traitement d'image ultérieur。
*
* donc,Vous pouvez mieux traiter diverses ressources d'image,Évitez les problèmes de compatibilité en raison de différents types d'images。
*/</span>
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>