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 に答える