Как сделать изменение размера и изменение цвета PNG изображения в PHP GD

<?php
createImage(50,50, 0,0, 255);
function createImage($width, $height, $nR, $nG, $nB)
{
$image = imagecreatefrompng("source.png");
imagealphablending($image, false);  
imagesavealpha($image, true);       

      //resize the image
      $new_image = imagecreatetruecolor($width, $height);
      imagealphablending($new_image, false); 
      imagesavealpha($new_image, true);
      imagecopyresampled($new_image, $image, 0, 0, 0, 0, $width, $height, imagesx($image), imagesx($image));

    //colorize the image
        $nrgb = str_pad(dechex($nR), 2, '0', STR_PAD_LEFT). str_pad(dechex($nG), 2, '0', STR_PAD_LEFT). str_pad(dechex($nB), 2, '0', STR_PAD_LEFT);              

       $newColor = $nrgb;

        $c2 = sscanf($newColor ,"%2x%2x%2x");

        for($i=0;$i<$width;$i++)
        {
            for($j=0;$j<$height;$j++)
            {
             $cIndex = imagecolorat($new_image,$i,$j);

             imagecolorset($new_image,$cIndex,$c2[0],$c2[1],$c2[2]);
            }
        }

        header("Content-Type: image/png");

        imagepng($new_image,"test.png");
}
?>

1 ответ

Никакого эксперта здесь... пока после одного месяца исследований и усердного изучения я нашел ответ на вышеприведенное решение...... всего пару минут назад... мы должны использовать функцию imagecreate вместо imagecreatetruecolor... coz Функция TruColor генерирует 32-битное PNG-изображение... мы не можем раскрасить 32-битное изображение с помощью функции ImageColset... насколько это сложно.... смеется... спасибо за поддержку crayon...

Другие вопросы по тегам