ImageMagick을 사용하여 여러 이미지를 결합


166

ImageMagick을 사용하여 여러 이미지를 하나의 이미지로 결합하고 싶습니다. 조금 더 잘 설명하기 위해 결과가 다음과 유사하게 보이기를 원합니다.

즉, 나는 많은 스크린 샷을 가지고 있으며 원본 이미지가 서로 위에있는 하나의 이미지로 바꾸고 싶습니다.

인터넷 검색을 통해 '복합'명령을 보았지만 그 경우 내가 원하는 결과를 얻는 데 사용하는 방법을 모르겠습니다.



답변:


256

다음과 같은 이름의 입력 파일 수 :in-<something>.jpg

convert -append in-*.jpg out.jpg

특정 파일을 추가하거나 전체 "글로브"를 얻는 대신 숫자를 건너 뛰려면 입력 파일을 명시 적으로 언급하고 append나중에 명령을 넣을 수 있습니다

in-1.jpg 변환 in-5.jpg in- N .jpg + out-in1-plus-in5-and-in N .jpg에 추가

세로 붙여 넣기 -append에는 (대신 +append)를 사용할 수 있습니다 .

또는:

montage -mode concatenate -tile 1x in-*.jpg out.jpg

또한 out.jpg소스 이미지의 수직 연결을 포함 하는 파일 을 만듭니다 .

convert

단일 행 또는 열로 간단하게 연결 append하려면 convert도구 옵션으로 충분합니다. 참고 -append로 하나의 열 생성, 수직 이미지를 모두 연결 한 N 개의 행 및 +append하나의 열 생성을 가로 연접 n 개의 열.

ImageMagick : 명령 줄 옵션을 참조하십시오 .

montage

레이아웃을보다 세밀하게 제어하려면 montage도구 가 필요합니다 . 옵션과 montage -mode concatenate같이 입력 이미지를 붙이고 적용 할 레이아웃을 제어합니다.append-tile 1x

tilecolumns × rows 형식을 따르지만 양쪽이 누락 montage되어 제약 조건을 충족시키는 방법을 알아냅니다.

우리가 사용하는 1x것과 같은 효과를 얻기 위해 여기 (행의 수와 정확히 하나의 열) -append. 이 없으면 기본적으로 (한 행의 여러 열)로 -tile 1x이미지를 결합합니다 .+append-tile x1

( ImageMagick 예 : 몽타주, 이미지 배열 참조 )


1
감사. 추가는 잘 작동하지만 몽타주가 깨진 것으로 간주합니다. 고스트 스크립트 글꼴이 설치되어 있지 않으면 이미지에 주석을 달지 않아도 구제됩니다. 글꼴은 사전이 아니라 필요에 따라로드해야합니다.
Bram

@ 브람 : 나는 그것을 몰랐고 강력하게 동의합니다. GraphicsMagick이 동일하게 동작하는지 알고 있습니까?
peth

2
@MikeRobinson convert -append `counter=0; for x in in-*; do if [[ $(($counter % 2)) == 0 ]]; then echo $x; fi; counter=$((counter + 1)); done` out.jpg이 일을해야합니다.
gozzilli

2
점을 유의 convert -tile 2x2등의 명령을 사용하여 파일을 읽을 . 즉, 이름 0-10이 지정된 청크 는 다음과 같이 읽습니다 0,10,1,2,..,9. 이 기본적인 것을 깨닫기 위해 거의 2 시간이 걸렸습니다.
Blauhirn

1
@Blauhirn : 그 파일 이름을 변환하는 변환입니까, 아니면 그 순서대로 파일을 반환하는 것입니까? 예를 들어 ls *해당 값을 순서대로 반환합니다.
naught101
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.