명령 줄을 사용하여 이미지를 세로로 분할하는 방법은 무엇입니까?


19

큰 800x5000 이미지가 있다고 가정합니다. 커맨드 라인을 사용하여 800x1000 크기의 5 개의 개별 이미지로 어떻게 분할합니까?


2
Q에 솔루션을 추가하지 마십시오. 아래 답변을 수락 된 것으로 표시하십시오.
slm

답변:


27

convert -crop geometry + repage를 사용하여 해결했습니다.

convert -crop 100%x20% +repage image.png image.png

이것을 파일 배치에 적용하려면 다음을 수행하십시오.ls -1 *.png | sed 's,.*,& &,' | xargs -n 2 convert -crop 100%x20% +repage
JPT

23

ImageMagick 사용 :

$ convert -crop 800x1000 image.png cropped_%d.png

cropped_1.png, cropped_2.png등 의 파일 시퀀스를 생성합니다 .

참고 문헌


OP는 이것이를 사용하여 해결했다고 말했다 convert -crop geometry +repage. 예를 들면 다음과 같습니다 convert -crop 100%x20% +repage image.png image.png..
slm

1
+repage 고려 사항 : 이미지 오프셋 가능 형식 등

이것은 @shley의 답변과 어떻게 비교됩니까?
CMCDragonkai

@CMCDragonkai 그것은 그들은 수직 5 개 조각으로 임의 크기의 이미지를 분할 할 수 있도록 비율을 사용하는 대신 800x5000 경우에 대해 구체적으로 기록되고, 실질적으로 동일의
outlyer

1

ImageMagick은 이미지가 처리하기에 너무 커서 크기가 크므로 다른 방법을 사용해야했습니다.

파이썬 이미지 라이브러리를 사용했습니다.

OP 질문에 대한 빠르고 더러운 답변은 다음과 같습니다.

from PIL import Image

im = Image.open("YourImage.yourformat")

for h in range(0, im.height, 1000):
     nim = im.crop((0, h, im.width-1, min(im.height, h+1000)-1))
     nim.save("PartialImage." + str(h) + ".yourformat")

위의 코드는 최종 크기가 하드 코딩되었지만 모든 입력을 매개 변수화하여 자체 전체 스크립트로 쉽게 변환 할 수 있습니다. 그런 것이 필요하다면.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.