通过图像迭代替换所有颜色,除了php中的黑色

时间:2017-12-26 07:14:18

标签: php image iteration gd

我需要遍历图像中的所有像素,用黑色替换除一种颜色以外的所有像素,以便我可以定义特定颜色的所有区域。下面的代码不起作用,图像保持不变。我做错了什么?

header('Content-Type: image/jpeg');

// open an image
$im = imagecreatefromjpeg('sunset.jpg');
$x_val = imagesx($im);
$y_val = imagesy($im);
$black = imagecolorallocate($im, 0, 0, 0);
for ($i = 0; $i < $x_val; $i++) {
    $color_index = imagecolorat($im, $i, $i);
    $colourarray = imagecolorsforindex($im, $color_index);
    if ($colourarray[0] != 170 && $colourarray[1] != 0 && $colourarray[2] != 0) {

        $color_index = imagecolorat($im, $i, $i);

        imagecolorset($im, $color_index, 0, 0, 0);
    } else {
        $color_index = imagecolorat($im, $i, $i);
        imagecolorset($im, $color_index, 170, 0, 0);
    }
}


imagejpeg($im);
imagedestroy($im);

0 个答案:

没有答案