imagepalettetotruecolor

(PHP 5 >= 5.5.0, PHP 7)

imagepalettetotruecolorConverts a palette based image to true color

Описание

bool imagepalettetotruecolor ( resource $src )

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

Список параметров

image

Ресурс изображения, полученный одной из функций создания изображений, например, такой как imagecreatetruecolor().

Возвращаемые значения

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

Примеры

Пример #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);
?>

Результат выполнения данного примера:

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

Смотрите также

  • imagecreatetruecolor() - Создание нового полноцветного изображения
  • imageistruecolor() - Определяет, является ли изображение полноцветным

Коментарии

Автор:
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($dstfalse);//prevent blending with default black
       
$transparent imagecolorallocatealpha($new_image255255255127);//change the RGB values if you need, but leave alpha at 127
       
imagefilledrectangle($dst00$imagesx($src), imagesy($src), $transparent);//simpler than flood fill
       
imagealphablending($dsttrue);//restore default blending

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

       
$src $dst;
        return 
true;
    }
}
?>
2014-03-21 08:20:15
http://php5.kiev.ua/manual/ru/function.imagepalettetotruecolor.html
Автор:
PHP ver 5.4.24 does not support this function (it has not been defined). To get rid of this, you must copy image resource to new image created by function imagecreatetruecolor();

Example with image loaded from GIF file:

$image  = imagecreatefromgif("path/to/gif/file.gif");  //create an image from GIF
$width  = imagesx($image);                             //get width of source image
$height = imagesy($image);                             //get height of source image
$image2 = imagecreatetruecolor($width,$height);        //create new image of true colors with given width and height
imagecopy($image2,$image,0,0,0,0,$width,$height);      //copy source image to new one

header("Content-Type: image/jpeg");                    //set header for JPG image
imagejpg($image2);                                     //render JPg image into browser

imagedestroy($image);                                  //free up memory
imagedestroy($image2);
2014-04-30 17:44:20
http://php5.kiev.ua/manual/ru/function.imagepalettetotruecolor.html
Автор:
here the working version of walf's solution

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

       
$dst imagecreatetruecolor(imagesx($src), imagesy($src));
     
       
imagealphablending($dstfalse);//prevent blending with default black
       
$transparent imagecolorallocatealpha($dst255255255127);//change the RGB values if you need, but leave alpha at 127
       
imagefilledrectangle($dst00imagesx($src), imagesy($src), $transparent);//simpler than flood fill
       
imagealphablending($dsttrue);//restore default blending

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

       
$src $dst;
        return 
true;
    }
}
?>
2017-03-17 17:46:08
http://php5.kiev.ua/manual/ru/function.imagepalettetotruecolor.html

    Поддержать сайт на родительском проекте КГБ