Цвет Hex для imagefilledrectangle - PullRequest
       2

Цвет Hex для imagefilledrectangle

0 голосов
/ 20 сентября 2011

У меня проблемы с заливкой правильного цвета:

$bgColor = '9EA5FF';
imagefilledrectangle($im, 0, 0, 11, 214,'0x' . $bgColor);

OR

$bgColor = '0x9EA5FF';
imagefilledrectangle($im, 0, 0, 11, 214,$bgColor);

Похоже, что приведенный выше код (ы) заполняет квадрат не так, как должен (он просто черный), а этот код:

imagefilledrectangle($im, 0, 0, 11, 214,'0x9EA5FF');

ли.

Что я делаю неправильно?

Ответы [ 2 ]

1 голос
/ 20 сентября 2011

Попробуйте установить переменную $ bgColor с помощью функции imagecolorallocate (), используя триплет RGB для нужного цвета.Функция imagecolorallocate () предназначена для возврата идентификатора цвета, который должен быть передан в imagefilledrectangle ().

В соответствии с документацией для GD функция imagecolorallocate () должна вызываться для создания каждого цвета, который будет использоваться в изображении.представлен изображением. "

0 голосов
/ 20 сентября 2011
 function html2rgb($color)
 {
   if ($color[0] == '#')
       $color = substr($color, 1);

   if (strlen($color) == 6)
       list($r, $g, $b) = array($color[0].$color[1],
                             $color[2].$color[3],
                             $color[4].$color[5]);
   elseif (strlen($color) == 3)
       list($r, $g, $b) = array($color[0].$color[0], $color[1].$color[1], $color[2].$color[2]);
   else
       return false;

   $r = hexdec($r); $g = hexdec($g); $b = hexdec($b);

   return array($r, $g, $b);
}


$theRGB = html2rgb($bgColor);
$background = imagecolorallocate($im, $theRGB[0], $theRGB[1], $theRGB[2]);
imagefilledrectangle($im, 0, 0, 11, 214,$background);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...