2012-10-31 106 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等等,會發生什麼情況。希望這可以幫助你至少有一點。 :-)