转换图像使用imagecreateformpng有错误

时间:2014-07-14 19:40:37

标签: php image colors

这是我选择图像的代码,然后将该图像转换为多种颜色,然后将它们发布到我服务器上的目录中。我在使用" if($ im&& imagefilter($ im,IMG_FILTER_COLORIZE,$ colour-> RGB))"部分查询。如果我在" $ colour-> RGB"中输入实际的RGB代码。部分工作。但是,保存在数据库中的RGB是正确保存的,这是查询的结果。

白 255,255,255 白色阴影失败。

绿色 0,255,0 绿色阴影失败。

橙 255,165,0 橙色阴影失败。

红 255,0,0 红色阴影失败。

粉红色 255,51,153 粉红色底纹失败。

蓝 0,0,255 蓝色阴影失败。

银 192,192,192 银色阴影失败。

黄色 255,255,0 黄色阴影失败。

<?php

include('PATH_TO/ez_sql_core.php');
include('PATH_TO/ez_sql_mysql.php');

$db = new ezSQL_mysql('xxxx','xxxx','xxxx','xxxx');

$colours = $db->get_results("SELECT Colour, RGB FROM colours");

foreach($colours as $colour)
{
    echo $colour->Colour;
    echo "<br>";
    echo $colour->RGB;  
    echo "<br>";

    $im =     imagecreatefrompng("IMAGE_URL");

    if($im && imagefilter($im, IMG_FILTER_COLORIZE, $colour->RGB))
    {
        echo "Image successfully shaded {$colour->Colour}.";

        imagepng($im, "images/Convert/IMAGENAME-{$colour->Colour}.png");
        imagedestroy($im);
    }
else
    {
        echo "{$colour->Colour} shading failed.";
    }
    echo "<br>";
}

有人可以建议为什么$ colour-&gt; RGB会在回声上正确显示而不是在&#34; if($ im&amp;&amp; imagefilter($ im,IMG_FILTER_COLORIZE,$ colour-&gt; RGB)) &#34;

2 个答案:

答案 0 :(得分:0)

Per the docs RGB颜色值需要作为单独的参数提供:

list($red,$green,$blue) = explode(',', $colour->RGB);

imagefilter($im, IMG_FILTER_COLORIZE, $red, $green, $blue);

答案 1 :(得分:-1)

http://php.net/manual/en/function.imagefilter.php

从手动COLORIZE过滤器需要单独的R G B值。你正在传递字符串。

转换imagefilter($ im,IMG_FILTER_COLORIZE,$ colour-&gt; RGB)

$ rgb = explode($ color-&gt; RGB); imagefilter($ im,IMG_FILTER_COLORIZE,$ rgb [0],$ rgb [1],$ rgb [2]);