1

我用 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);

当我这样做时,我只会得到一个灰色的小方块,所以它不能按预期工作。

有什么办法让它工作吗?适当地?

4

1 回答 1

0

所以你可以使用的是使用的值部分:

   <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]); 
于 2019-07-01T08:46:01.033 回答