コマンドラインを使用して画像を垂直に分割する方法は?

コマンドラインを使用して画像を垂直に分割する方法は?

800x5000サイズの大きな画像があるとしましょう。コマンドラインを使用して800×1000サイズの別々の画像を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")

上記のコードには最終寸法がハードコーディングされていますが、すべての入力がパラメータ化され、独自の完全スクリプトに簡単に変換できます。誰でもこのようなものが必要な場合。

関連情報