【问题标题】:Blend two colors (GD)混合两种颜色(GD)
【发布时间】:2012-10-20 10:21:09
【问题描述】:

例如:

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

【问题讨论】:

    标签: php colors gd


    【解决方案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 等时发生的情况。希望这至少对您有所帮助。 :-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-04
      • 1970-01-01
      • 2023-01-31
      • 2017-04-09
      • 2013-01-26
      • 1970-01-01
      相关资源
      最近更新 更多