L'éditeur php Yuzai vous propose un tutoriel sur la conversion d'images en vraies couleurs en images de palette. Dans le traitement d'images, il est courant de convertir des images en vraies couleurs en images de palette, ce qui peut réduire la taille du fichier de l'image, améliorer la vitesse de chargement et convient à certaines scènes qui n'ont pas d'exigences de couleur élevées. Cet article explique comment utiliser la bibliothèque GD en PHP pour implémenter ce processus de conversion, vous aidant ainsi à mieux traiter les images et à optimiser les performances des pages Web.
PHP Convertir une image en vraies couleurs en image de palette
En infographie, une image TrueColor stocke les informations complètes sur la couleur de chaque pixel, en utilisant une représentation 24 bits ou 32 bits. Les images de palette utilisent une palette, qui stocke un nombre limité de couleurs, l'index de chaque pixel correspondant à la couleur de la palette.
La conversion d'une image en vraies couleurs en une image palette nécessite les étapes suivantes :
1. Créer une palette
Tout d'abord, vous devez créer une palette contenant les couleurs collection que vous souhaitez utiliser pour l'image de la palette. Le nombre de couleurs doit être inférieur ou égal à 256 (mode 8 bits).
2. Quantifiez les images en vraies couleurs
Ensuite, l'image en vraies couleurs doit être quantifiée, réduisant ainsi son espace colorimétrique aux couleurs de la palette. Les algorithmes suivants peuvent être utilisés :
3. Créer une image d'index de palette
Après la quantification, une image indexée par palette doit être créée, où chaque valeur de pixel représente un index de couleur dans la palette.
4. Générer un fichier de palette
Enfin, vous devez générer un fichier de palette contenant les valeurs RVB des couleurs de la palette. Les fichiers de palette utilisent généralement des formats tels que ACT, PAL ou BMP.
Exemple de code PHP
L'exemple de code php suivant utilise la bibliothèque GD pour convertir une image en vraies couleurs en image de palette :
<?php // 加载真彩色图像 $image = imagecreatefrompng("image.png"); // 创建颜色表 $palette = array( "white" => array(255, 255, 255), "black" => array(0, 0, 0), "red" => array(255, 0, 0), "green" => array(0, 255, 0), "blue" => array(0, 0, 255) ); // 通过中间值算法量化图像 imagepalettetotruecolor($image); imagequantize($image, 256, 0, GD_TRUE_COLOR_FIXED); // 创建颜色索引图 $indexedImage = imagecreatetruecolor(imagesx($image), imagesy($image)); imagecopy($indexedImage, $image, 0, 0, 0, 0, imagesx($image), imagesy($image)); // 生成调色板文件 $paletteFile = "palette.act"; file_put_contents($paletteFile, pack("CCCCCCCCCCCCCCCC", $palette["white"][0], $palette["white"][1], $palette["white"][2], $palette["black"][0], $palette["black"][1], $palette["black"][2], $palette["red"][0], $palette["red"][1], $palette["red"][2], $palette["green"][0], $palette["green"][1], $palette["green"][2], $palette["blue"][0], $palette["blue"][1], $palette["blue"][2])); // 保存调色板图像 imagepng($indexedImage, "palette.png"); ?>
Avantages
La conversion d'images en vraies couleurs en images en palette présente les avantages suivants :
Inconvénients
La conversion d'images en vraies couleurs en images en palette présente également certains inconvénients :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!