3

我想用其他颜色替换一个完全白色列中的所有白色像素,如果我在列上有一个黑色像素,不要改变任何东西,但我不知道问题出在哪里......

这是代码:

function findLines() {
    $blank = 1;
    $im_1 = imageCreateFromPng('resize_1.png');
    for($i=0; $i<1090; $i++) {
        if($blank == 1) {
            for($j=0; $j<240; $j++) {
                $rgb = imageColorAt($im_1, $i, $j);
                $r = ($rgb >> 16) & 0xFF;
                $g = ($rgb >> 8) & 0xFF;
                $b = $rgb & 0xFF;
                $c = $r.$g.$b;
                if($c === "0 0 0") {
                    $blank = 0;
                }
                $color = imageColorAllocate($im_1, 0, 255, 255);    
                imageSetPixel($im_1, $i, $j, $color);
            }
        }
        if ($blank == 0) {
            for($j=0; $j<240; $j++) {
                $rgb = imageColorAt($im_1, $i, $j);
                $r = ($rgb >> 16) & 0xFF;
                $g = ($rgb >> 8) & 0xFF;
                $b = $rgb & 0xFF;
                $c = $r . " " . $g . " " . $b;
                if($c === "255 255 255") {
                    $blank = 1;
                }


            }
        } else {
            $blank = 0;
        }
    } 
    header("Content-Type: image/png");
    imagepng($im_1);
}
4

1 回答 1

1

这是正确的。不管怎么说,还是要谢谢你!

function findLines() {
    $im_1 = imageCreateFromPng('resize_1.png');
    for($i=0; $i<1090; $i++) {
        $blank = 1;
        for($j=0; $j<240; $j++) {
            $rgb = imageColorAt($im_1, $i, $j);
            if($rgb == 0) {
                $blank = 0;
            }
        }
        if ($blank == 1) {
            for($j=0; $j<240; $j++) {
                $color = imageColorAllocate($im_1, 155, 155, 155);  
                imageSetPixel($im_1, $i, $j, $color);
            }
        } else {
            $blank = 0;
        }
    }
    header("Content-Type: image/png");
    imagepng($im_1);
}
于 2013-06-02T14:31:49.820 回答