Say I have a large 800x5000 image; how would I split that into 5 separate images with dimensions 800x1000 using the command line?

  • 2
    Please don't add the solution to your Q. Mark the answer below as accepted.
    – slm
    Nov 23 '14 at 14:03

Solved it using convert -crop geometry +repage:

convert -crop 100%x20% +repage image.png image.png
  • If you want to apply this to a batch of files, try this: ls -1 *.png | sed 's,.*,& &,' | xargs -n 2 convert -crop 100%x20% +repage
    – JPT
    Feb 28 '19 at 20:55
  • Okay, so 100%x20% splits vertically and 20%x100% splits horizontally.
    – deadfish
    Mar 9 '20 at 14:23

Using ImageMagick:

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

Will create a sequence of files named cropped_1.png, cropped_2.png, and so on.


  • The OP said that this solved it using convert -crop geometry +repage. For example: convert -crop 100%x20% +repage image.png image.png.
    – slm
    Nov 23 '14 at 14:06
  • 1
    +repage considerations re: image offset capable formats etc.
    – user44370
    Nov 23 '14 at 14:18
  • How does this compare to @shley's answer? Mar 21 '19 at 6:51
  • 1
    @CMCDragonkai it's essentially the same, they're using percentages so it will split any size image into 5 vertical slices instead of being written specifically for the 800x5000 case
    – outlyer
    Apr 22 '19 at 21:15

Using the "tiles" functionality:

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



ImageMagick would crash on me, for the image being too big for it to handle, so I had to resort to other methods.

I ended up using the Python Image Library.

A quick and dirty answer to the OP question follows:

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

The above code has the final sizes hardcoded, but it can be easily transformed into an full blow script of its own with all inputs parameterized. If one ever needs such a thing.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.