Разобрать значение переменной для цветовой заливки в php - PullRequest
1 голос
/ 01 июля 2019

Я создаю генератор изображений с php, и у меня есть проблема.

У меня есть форма, которая запрашивает цвет, который уже определен

    <select name="background color">
                        <option value=" 255, 0, 0">Red</option>
                        <option value="0,128,0">Green</option>
                        </select> 

Как только я выберу это и сделаю свое дело, оно будет сохранено в переменной с методом POST

?php

$height=$_POST['height'];
$width=$_POST['width'];
$cbackground=$_POST['backgroundcolor'];
$ctext=$_POST['text color'];
$text=$_POST['text'];
$arr = get_defined_vars();

header('Content-Type:image/jpeg');
$img = imagecreatetruecolor($width, $height);
imagefill($img, 0, 0, 255, 545, 543); 

как вы можете видеть в последней строке, я жестко закодировал цвет, но я хочу вызвать значение из переменной cbackground следующим образом: или аналогичный.

imagefill($img, 0, 0, $cbackground);

когда я делаю это, я получаю только маленький серый квадрат, поэтому он не работает как положено.

Есть ли способ заставить его работать? правильно?

1 Ответ

0 голосов
/ 01 июля 2019

Итак, вы можете использовать часть значения:

   <select name="backgroundcolor">
      <option value=" 255, 0, 0">Red</option>
      <option value="0,128,0">Green</option>
   </select> 

и взорвать строку, чтобы получить массив из 3 чисел:

$valueArray = explode(",",str_replace(" ","",$_POST['backgroundcolor']));

Теперь у вас естьмассив из:

  [0] => 255, 
  [1] => 0, 
  [2] => 0

Так что вам просто нужно использовать его так:

imagefill($img, 0, 0, $valueArray[0], $valueArray[1], $valueArray[2]); 
...