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

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

800x5000 크기의 큰 이미지가 있다고 가정해 보겠습니다. 명령줄을 사용하여 800x1000 크기의 별도 이미지 5개로 분할하려면 어떻게 해야 합니까?

답변1

그것을 사용하여 해결ImageMagick 변환-기하학 자르기+재페이지:

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

답변2

ImageMagick 사용:

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

등의 cropped_1.png이름 을 가진 일련의 파일이 생성됩니다 .cropped_2.png

인용하다

답변3

"타일" 기능을 사용하십시오:

convert image.png -crop 1x5@ out-%d.png

https://www.imagemagick.org/Usage/crop/#crop_tile

답변4

ImageMagick은 이미지가 너무 커서 처리할 수 없기 때문에 충돌이 발생하여 다른 방법을 사용해야 했습니다.

결국 Python 이미지 라이브러리를 사용하게 되었습니다.

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")

위의 코드에는 최종 치수가 하드 코딩되어 있지만 모든 입력이 매개변수화되어 자체 완전한 스크립트로 쉽게 변환될 수 있습니다. 누구든지 이런 것이 필요하다면.

관련 정보