2012-10-31 197 views
2

例如:混合两种颜色(GD)

$im = imagecreatefrompng("php.png"); 
$rgb = imagecolorat($im, 10, 15); 
$r = ($rgb >> 16) & 0xFF; 
$g = ($rgb >> 8) & 0xFF; 
$b = $rgb & 0xFF; 

(从PHP DOC)

颜色我想补充:

$r2 = rand(0, 255); 
$g2 = rand(0, 255); 
$b2 = rand(0, 255); 

$color = imagecolorallocatealpha($im, $r2, $g2, $b2, 0);   
imagesetpixel($im, 10, 15, $color); 

所以原来的颜色($ R,$ g,$ b)被替换为新的颜色($ r2,$ g2,$ b2)。

但我怎么能添加只是一定量的$ R2,$ G2和$ B2的,不能完全替代。

因此,如果原始颜色是红色,而我生成的第二个随机颜色是绿色,我只想添加第二种颜色的10%或15%。

回答

1

我还没有真正做了很多图像处理,所以这只是一个长镜头,但不能你做这样的事情:

function addPercentageToNumber($number, $minPercentage, $maxPercentage) { 
    return $number + rand(($number/100) * $minPercentage, ($number/100) * $maxPercentage ); 
} 

// Base color 
$r2 = rand(0, 255); 

// Add 10-20% 
$r2 = addPercentageToNumber($r2, 10, 20); 

您还需要添加一些代码来处理如果结果为>255等等,会发生什么情况。希望这可以帮助你至少有一点。 :-)