imagemagick의 작업을 이미지의 아래쪽 절반으로 제한하는 방법은 무엇입니까?

imagemagick의 작업을 이미지의 아래쪽 절반으로 제한하는 방법은 무엇입니까?

다음 명령을 시작으로 이미지의 -fill red상반부와 하반부에 적용하고 싶습니다 .-fill green

(두 번의 작업 후에 사진을 분해하고 -fill다시 조립할 수 있다는 것을 알고 있지만 이 사이트의 회원으로서 그렇게까지 내려갈 필요는 없습니다.)

convert 05.png -fuzz 20% -fill green -opaque white gr.05.png

두 번째 질문입니다. 두 개 이상의 변환을 하나의 convert명령으로 연결할 수 있습니까?

답변1

글쎄, 한 가지 방법은 통과야-region geometry옵션. 지역을 설정하고, 원하는 작업을 적용하고, 완료되면 해당 지역을 설정 해제한 다음, 다른 지역을 설정하고, 다른 작업을 적용하고, 완료되면 해당 지역도 설정 해제합니다. 예를 들어 800x600실행할 이미지 크기는 다음과 같습니다.

convert input.jpg \
-fuzz 20% \
-region '800x300+0+0' -fill green -opaque white +region \
-region '800x300+0+300' -fill red -opaque white +region \
output.jpg

이미지 너비/높이 하드코딩을 방지하려면... 이 경우 상단 또는 하단에서 시작하기 위해 미리 추가된 오프셋을 사용하는 대신 형상을 100x50%( 100%너비 및 높이 의미)로 작성할 수도 있습니다.50%-gravity-region

convert input.jpg \
-fuzz 20% \
-gravity North -region '100x50%' -fill green -opaque white \
+region \
-gravity South -region '100x50%' -fill red -opaque white \
+region \
output.jpg

여러 명령을 연결할 수 있습니다 . 예를 들어 위 명령에 추가할 수 있습니다 -resize.-crop이미지 스택:

이를 통해 이미지 또는 이미지 시퀀스를 개별적으로 처리한 다음 결과를 명령줄로 가져올 수 있습니다. 이미지 스택은 대괄호로 표시됩니다. 이미지 연산자는 현재 스택의 이미지에만 영향을 미칩니다.

관련 정보