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を追加するにはどうすればよいでしょうか。

したがって、元の色が赤で、生成する 2 番目のランダムな色が緑の場合、2 番目の色の 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 に答える