javascript - 也许 PHP 还记得颜色?

标签 javascript php arrays canvas

我正在尝试建立一个网站,您可以在 canvas 上绘图并将其制作成 GIF
到目前为止,我成功了,但我在颜色方面遇到了问题 我解释一下我的网站是如何工作的:

1) 用户在 Canvas 上绘制并将其保存在数组中的对象中,如下所示:

[{x: 1, y:1, radius: 8, color: "blue"}, {x: 2, y:3, radius: 16, color: "red"} ...]

鼠标在 Canvas 上的每一次移动都是数组中的一个对象

现在我将它作为 json 发送到 php 页面,现在在 php 页面中我有像这样的预定义颜色数组:

$colors = array(
    'brown' => array(
        165,
        42,
        42
    ),
    'cadetblue' => array(
        95,
        158,
        160
    ),
    'chartreuse' => array(
        127,
        255,
        0
    ),
    'chocolate' => array(
        210,
        105,
        30
    ),
    'coral' => array(
        255,
        127,
        80
    ),
    'crimson' => array(
        220,
        20,
        60
    )
);

到目前为止一切顺利,现在当我在图像上绘制时,我循环数组中从客户端发送到 m 的每个对象,我获取颜色并使用 php 函数创建一个并绘制填充椭圆,代码:

for ($i = 0; $i <= $j; $i++) {
    $colorName = $model[$i]->color;
    $color = imagecolorallocate($img, $colors[$colorName][0] ,$colors[$colorName][1] , $colors[$colorName][2]);
    imagefilledellipse($img, $model[$i]->x, $model[$i]->y, $model[$i]->radius * 2, $model[$i]->radius * 2, $color);
    }

现在可以开始了,但是在绘图中间突然变回我在网站上绘制的第一种颜色
我不知道为什么会这样,我查看发送到服务器的数据,这个颜色剂量出现在它返回的位置。

图片到插图:

我在网站上绘制的内容:

What I draw

我得到的结果:

Result

完整的绘图PHP代码:

http://pastebin.com/0BGUeCF3

发送到服务器的数据:

http://pastebin.com/CPzpJq7f

记下: 在巧克力色的中间,它变回黄绿色,即使这种颜色存在于发送到该位置服务器的数据中也是如此

最佳答案

OK,问题解决了,我解释一下是什么原因造成的,解决方法是什么

问题是您不能为单个图像创建超过 255 种颜色
当我阅读 php.net 中的评论时,我发现了这个注释

Note that you can only assign 255 colors to any image palette. If you try assigning more, imagecolorallocate() will fail.

在我的代码中,我创建了超过 255 种颜色,因为它返回开始
现在我为每一帧创建 6 种颜色并根据它们绘制,问题就解决了

关于javascript - 也许 PHP 还记得颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39306439/

相关文章:

c - 按长度排序,在 c 中具有稳定性

javascript - d3js v4 - 刷机精度,如何获得毫秒

javascript - 检查文件或模块是否已导入

PHP - 评估 IF 语句的最佳实践

php - Firefox 过早自动关闭 HTML 元素 - IE 和 Chrome OK

php - 使用mysql动态填充php中的数组

java - 将字符串从字符串数组转换为整数

javascript - 如何显示 Bar-Highcharts 库中每个图表的 xAxis 类别?

javascript - php脚本邮件程序模式 Bootstrap

php - 如何将字符串值分配给 php 数组的索引?