imagepalettetotruecolor

(PHP 5 >= 5.5.0)

imagepalettetotruecolorConvertit une image basée sur une palette en couleur vraie

Description

bool imagepalettetotruecolor ( resource $src )

Convertit une image basée sur une palette, créée par une fonction comme imagecreate(), en une image en couleur vraie, comme imagecreatetruecolor().

Liste de paramètres

image

Une ressource d'image, retournée par une des fonctions de création d'images, comme imagecreatetruecolor().

Valeurs de retour

Retourne TRUE si la convertion a été un succès, ou si l'image source est déjà en couleur vraie, sinon, retourne FALSE.

Exemples

Exemple #1 Convertit n'importe quelle ressource image en couleur vraie

<?php
// Compatibilité ascendante
if(!function_exists('imagepalettetotruecolor'))
{
    function 
imagepalettetotruecolor(&$src)
    {
        if(
imageistruecolor($src))
        {
            return(
true);
        }

        
$dst imagecreatetruecolor(imagesx($src), imagesy($src));

        
imagecopy($dst$src0000imagesx($src), imagesy($src));
        
imagedestroy($src);

        
$src $dst;

        return(
true);
    }
}

// Utilisation d'une Closure
$typeof = function() use($im)
{
    echo 
'typeof($im) = ' . (imageistruecolor($im) ? 'true color' 'palette'), PHP_EOL;
};

// Crée une image basée sur une palette
$im imagecreate(100100);
$typeof();

// On la convertit en couleur vraie
imagepalettetotruecolor($im);
$typeof();

// Libération de la mémoire
imagedestroy($im);
?>

L'exemple ci-dessus va afficher :

typeof($im) = palette
typeof($im) = true color

Voir aussi

add a note add a note

User Contributed Notes 1 note

up
0
walf
29 days ago
The backwards compatibility example does not preserve transparency. You must first wipe out the default black background on the new image:

<?php
// Backwards compatiblity
if (!function_exists('imagepalettetotruecolor')) {
    function
imagepalettetotruecolor(&$src) {
        if (
imageistruecolor($src)) {
            return
true;
        }

       
$dst = imagecreatetruecolor(imagesx($src), imagesy($src));
       
       
imagealphablending($dst, false);//prevent blending with default black
       
$transparent = imagecolorallocatealpha($new_image, 255, 255, 255, 127);//change the RGB values if you need, but leave alpha at 127
       
imagefilledrectangle($dst, 0, 0, $imagesx($src), imagesy($src), $transparent);//simpler than flood fill
       
imagealphablending($dst, true);//restore default blending

       
imagecopy($dst, $src, 0, 0, 0, 0, imagesx($src), imagesy($src));
       
imagedestroy($src);

       
$src = $dst;
        return
true;
    }
}
?>
To Top