PHP 5.6.0beta1 released

imagepalettetotruecolor

(PHP 5 >= 5.5.0)

imagepalettetotruecolorConvierte una imagen basada en paleta a color verdadero

Descripción

bool imagepalettetotruecolor ( resource $src )

Convierte una imagen basada en paleta, creada por funciones como imagecreate(), a una imagen de color verdadero, como imagecreatetruecolor().

Parámetros

image

Un recurso image, es devuelto por una de las funciones de creación de imágenes, como imagecreatetruecolor().

Valores devueltos

Devuelve TRUE si la conversión se completó, o si la imagen origen ya era una imagen de color verdadero; de otro modo devuelve FALSE.

Ejemplos

Ejemplo #1 Convertir cualquier recurso de imagaen a color verdadero

<?php
// Retrocompatiblidad
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);
    }
}

// Clausura asistente
$typeof = function() use($im)
{
    echo 
'typeof($im) = ' . (imageistruecolor($im) ? 'true color' 'palette'), PHP_EOL;
};

// Crear una imagen basada en paleta
$im imagecreate(100100);
$typeof();

// Convertirla a color verdadero
imagepalettetotruecolor($im);
$typeof();

// Liberar la memoria
imagedestroy($im);
?>

El resultado del ejemplo sería:

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

Ver también

add a note add a note

User Contributed Notes 1 note

up
0
walf
27 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