2

例如:

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

(来自 PHP 文档)

我要添加的颜色:

$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%。

4

1 回答 1

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等等。希望这至少对您有所帮助。:-)

于 2012-10-31T01:22:00.667 回答