안녕하세요 여러 이미지의 왼쪽에 같은 이미지를 추가하고 싶습니다. 첫 번째 이미지는 범례이며 나중에 3x2를 몽타주하려는 6 개의 이미지 모두에 공통입니다.
몽타주하기 전에 아래 명령을 시도했지만 작동하지 않았습니다. 코드 속도를 늦추는 for 루프를 추가하지 않고도 작동 할 수 있는지 확인하고 싶었습니다.
convert +append image_3_1.png image_1_[1-6].png -geometry +10+0 test.png
image_1로 시작하는 6 개의 이미지 모두에 image_3_1을 추가하고 싶습니다. 어떤 아이디어?
다음에 대한 질문이 명확하지 않습니다.
for
루프 와 관련된 실제 문제여기에 몇 가지 아이디어가 있습니다 ...
이것은 단일을 사용 하고 이미지를 한 번만 로드하고 메모리에 복제 하여 for
루프 및 다중 호출을 방지 합니다.magick
magick
side
magick side.png \
\( +clone image_1.png +append -write out_1.png +delete \) \
\( +clone image_2.png +append -write out_2.png +delete \) \
\( +clone image_3.png +append -write out_3.png +delete \) \
\( +clone image_4.png +append -write out_4.png +delete \) \
\( +clone image_5.png +append -write out_5.png +delete \) \
image_6.png +append out_6.png
다음과 같이 6 개의 출력 파일을 생성합니다.
이것은 for
6 개의 복사본을 magick
병렬 로 실행하여 루프를 방지합니다 .
magick side.png image_1.png +append out_1.png &
magick side.png image_2.png +append out_2.png &
magick side.png image_3.png +append out_3.png &
magick side.png image_4.png +append out_4.png &
magick side.png image_5.png +append out_5.png &
magick side.png image_6.png +append out_6.png &
wait
위와 동일한 6 개의 출력 파일을 생성합니다.
이것은 GNU Parallel 을 사용하여 더 간결하게 수행 하는 것과 동일 합니다.
parallel magick side.png image_{}.png +append out_{}.png ::: {1..6}
중간 파일이 필요하지 않고 몽타주 만 원하는 경우 :
parallel -k magick side.png {} +append ppm:- ::: image_*png | magick montage -tile 2x3 -geometry +5+5 ppm:- montage.png
이것은 중간 출력 파일 생성을 피하고 GNU Parallel 사용을 피하는 등 거의 동일합니다 .
magick side.png \
\( +clone image_1.png +append -write ppm:- +delete \) \
\( +clone image_2.png +append -write ppm:- +delete \) \
\( +clone image_3.png +append -write ppm:- +delete \) \
\( +clone image_4.png +append -write ppm:- +delete \) \
\( +clone image_5.png +append -write ppm:- +delete \) \
image_6.png +append ppm:- | magick montage -background black -geometry +5+10 -tile 2x3 ppm:- montage.png
이것은 for
루프, 단일 프로세스, 별도의 montage
명령을 사용하지 않으며 중간 파일을 생성하지 않습니다.
magick side.png -write MPR:side +delete \
\( MPR:side image_1.png MPR:side image_2.png +append \) \
\( MPR:side image_3.png MPR:side image_4.png +append \) \
\( MPR:side image_5.png MPR:side image_6.png +append \) \
-append montage.png
바꾸기 +append
와 -append
함께 -smush 더 레이아웃과 화상 간 간격 유연성을.
아마도 이것과 같이 -smush
:
magick side.png -write MPR:side +delete -background cyan \
\( MPR:side image_1.png MPR:side image_2.png +smush 10 \) \
\( MPR:side image_3.png MPR:side image_4.png +smush 10 \) \
\( MPR:side image_5.png MPR:side image_6.png +smush 10 \) \
-smush 30 montage.png
내 생각에 옵션 6은 대부분의 경우 대부분의 컴퓨터에서 가장 빠를 것입니다. 더 많은 유연성이 필요하면 옵션 7 또는 5를 선택하십시오.
키워드 : ImageMagick, 이미지 처리, 몽타주, 레이아웃, 병렬, 스 머쉬.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다