我想用其他颜色替换完全白色列中的所有白色像素,如果列上有黑色像素,则不会改变任何内容,但我不知道问题出在哪里......
以下是代码:
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);
}
答案 0 :(得分:0)
这是正确的。不管怎样,谢谢!
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);
}