PHP 5.6.0beta1 released

imagepalettetotruecolor

(PHP 5 >= 5.5.0)

imagepalettetotruecolorConverts a palette based image to true color

Açıklama

bool imagepalettetotruecolor ( resource $src )

Converts a palette based image, created by functions like imagecreate() to a true color image, like imagecreatetruecolor().

Değiştirgeler

resim

imagecreatetruecolor() gibi bir resim oluşturma işlevinden dönen bir resim verisi.

Dönen Değerler

Returns TRUE if the convertion was complete, or if the source image already is a true color image, otherwise FALSE is returned.

Örnekler

Örnek 1 Converts any image resource to true color

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

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

// Create a palette based image
$im imagecreate(100100);
$typeof();

// Convert it to true color
imagepalettetotruecolor($im);
$typeof();

// Free the memory
imagedestroy($im);
?>

Yukarıdaki örneğin çıktısı:

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

Ayrıca Bakınız

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