【问题标题】:Parse variable value to imagefill color in php在php中将变量值解析为图像填充颜色
【发布时间】:2019-11-11 22:10:09
【问题描述】:

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

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

有什么方法可以让它工作吗?正常吗?

【问题讨论】:

    标签: php forms image creation imagejpeg


    【解决方案1】:

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

       <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]); 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-02-20
      • 1970-01-01
      • 2016-09-01
      • 1970-01-01
      • 2011-07-09
      • 2013-04-23
      • 1970-01-01
      • 2019-12-11
      相关资源
      最近更新 更多