web-dev-qa-db-ja.com

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

800x5000の大きな画像があるとします。コマンドラインを使用して、800x1000のサイズの5つの画像に分割するにはどうすればよいですか。

20
shley

Convert -crop geometry + repageを使用して解決:

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

ImageMagickの使用:

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

cropped_1.pngcropped_2.pngなどの一連のファイルを作成します。

参考文献

25
outlyer

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

上記のコードは最終的なサイズがハードコーディングされていますが、すべての入力がパラメーター化された独自の完全なブロースクリプトに簡単に変換できます。そんなものが必要なら。

1
Fabio A.