2014-07-08 2 views
1

이미지의 일부 픽셀의 색상을 imagemagick을 사용하여 대체하려하지만 이미지의 일부분 안의 전체 이미지가 아닙니다.Imagemagick - 픽셀 색상을 대체 할 영역을 선택하십시오.

내가 지금 사용하고 명령은 다음과 같습니다

convert original_image.jpg -fuzz 5% -fill '#f2f2f2' -opaque white image_without_colour.jpg 

이 작동하지만 난 내가 원하는 원하는 어디서보다는 사방 #의 f2f2f2을 대체합니다.

내가 이상적으로 같은 것을 할 것 :

convert original_image.jpg -fuzz 5% -fill '#f2f2f2' -area '100,100,50,50' -opaque white image_without_colour.jpg 

답변

1

내가 더 우아한 해결책에 대해 생각하고, 그러나 나는 이것이 당신이 원하는 것을 생각 :

convert x.jpg -crop 100x100+50+50 y.jpg      # Extract region to work on into y.jpg 
convert y.jpg -fuzz 5% -fill '#f2f2f2' -opaque white z.jpg # Do your stuff and save as z.jpg 
convert x.jpg z.jpg -geometry +50+50 -composite out.jpg  # Whack it back whence it came! 

출력 파일이 out.jpg

입니다

더 좋은 해결책이라고 생각합니다.

convert x.png \(+clone -crop 100x100+50+50 -fuzz 5% -fill '#f2f2f2' -opaque white \) -flatten out.jpg 
+0

글렌의 답변이 문제를 해결 했습니까? 그렇다면 답 중 하나를 수락하는 것을 고려해보십시오 (투표 갯수 옆에 빈 틱/체크 표시 사용). 그렇지 않은 경우 무엇이 작동하지 않았는지 말 하여서 나 또는 다른 사람들이 귀하를 더 도울 수 있도록하십시오. 고맙습니다. –

1

ImageMagick과의 "-region"옵션을 선택하면 제안 "- 지역"옵션과 동일합니다 : 지정된 지역에서

convert original_image.jpg -fuzz 5% -fill '#f2f2f2' -region 100x100+50+50 \ 
     -opaque white image_without_colour.jpg 

변경 흰색 픽셀은 회색.

관련 문제