에서 덕분에, 나는 당신의 질문은 아래 "홍수 채워진" 이미지가 될 수 있는지 여부에 온다 생각합니다. 난 그냥 보여주기 위해 명령 줄에서 ImageMagick를을 사용하고, 마젠타와 홍수가 채우기 경우
그래서, 당신은 그것을 볼 수 있도록 :
convert valid.png -threshold 50% -fill magenta -draw 'color 0,0 floodfill' result.png
![enter image description here](https://i.stack.imgur.com/znEOP.png)
을 그리고 동일한 작업을 수행하는 경우
convert invalid.png -threshold 50% -fill magenta -draw 'color 0,0 floodfill' result.png
![enter image description here](https://i.stack.imgur.com/z9Q4t.png)
: 잘못된 스텐실 이미지
그래서 홍수 채우기를하고 나중에 남아있는 흰색 픽셀이 있는지 확인하는 것이 해결책입니다. ImageMagick를 다시 그래서
: 충전 후 가장 밝은 픽셀이 검은 색 또는 답을 모르는 경우 실제 코드에서, 내가 흑인이 아닌 마젠타 때문에 그런 식으로 채울 것입니다, 나는 발견하기 만. 지금
convert valid.png -threshold 50% -fill black -draw 'color 0,0 floodfill' -format "%[max]" info:
0
및 잘못된 스텐실 : 하나 개의 작은 주름이
convert invalid.png -threshold 50% -fill black -draw 'color 0,0 floodfill' -format "%[max]" info:
65535
가 충전 후 밝은 픽셀 (0) 또는 흰색 (255 또는 65535) 블랙이면 블랙과 홍수 채우기 및 참조 - 왼쪽 위 픽셀이 흰색이 아니거나 검은 색 부분이 그림의 가장자리에 닿아 그림 가장자리를 흐르는 홍수 채우기를 멈 추면 그리고 두 가지 모두에 대한 간단한 해결책이 있습니다. 왼쪽 위의 픽셀이 흰색이고, "페인트"이 가장자리를 완전히 흐를 수 있기 전에 이미지 전체에 1 픽셀 너비의 흰색 테두리를 추가하면됩니다. 이미지 :
convert input.png -bordercolor white -border 1 .... <as before> ...
PHP 버전
PHP하지 내 기본 프로그래밍 언어를 다른이있을 수 있으므로, 상황 만이 확인 작동하는 것 같다 일을 더 나은 방법 ...
<?php
# Load the input image and get its size
$name="invalid.png";
$image=imagecreatefrompng($name);
$size=getimagesize($name);
# Threshold the image to only contain pure black and pure white
imagefilter($image,IMG_FILTER_GRAYSCALE);
imagefilter($image,IMG_FILTER_CONTRAST,-1000);
# Flood fill white areas with black
$black = imagecolorallocate($image,0,0,0);
imagefilltoborder($image,0,0,$black,$black);
$allblack=1;
# Scan the image and see if there are any non-black pixels
for($i=0;$i<$size[0];$i++){
for($j=0;$j<$size[1];$j++){
$thisColor = imagecolorat($image,$i,$j);
if($thisColor!=0){
$allblack=0;
break;
}
}
}
printf("%s: %d\n",$name,$allblack);
# Write output image
imagepng($image,"result.png");
?>
않았다 내 대답은 당신의 문제를 해결합니까?그렇다면 투표 수 옆의 빈 녹색 체크/체크 표시를 클릭하여 답변으로 수락하십시오. 그렇지 않은 경우, 나 또는 다른 누군가가 귀하를 더 멀리 도울 수 있도록 작동하지 않은 것을 말하십시오. 감사. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 –
예, 귀하의 답변에 따라 문제가 분류되었습니다. 도와 주셔서 정말로 고맙습니다. 정말 감사. –