如果r + b> 1,则将颜色变为黑色。 150

时间:2012-02-24 15:45:06

标签: php

我环顾四周但是找不到任何类似的问题。

在PHP中打开图像后,我愿意检查每个像素,如果它们的红色+绿色值低于150,我会将该像素变为白色,相反,如果总和高于150,我会将其转为像素到黑色。

这可能吗?

我尝试使用imagefilter(),但我无法按预期工作。也许有更合适的功能可供使用。

2 个答案:

答案 0 :(得分:3)

使用imagecolorat函数(我认为它可能是GD库的一部分)。你可以从中获得RGB。然后使用imagecolorset设置新的RGB。

答案 1 :(得分:3)

类似

$image = imagecreatefrompng($img);
$xdim = imagesx($image);
$ydim = imagesy($image);
for ($x = 1; $x <= $xdim-1; $x++) {
    for ($y = 1; $y <= $ydim-1; $y++) {
        $rgb = imagecolorat($image, $x, $y);
        if($rgb>150)
            $color = 0x00;
        else
            $color = 0xFF;
    }
}