如何使用命令行垂直分割图像?

如何使用命令行垂直分割图像?

假设我有一张 800x5000 的大图像;我如何使用命令行将其分成 5 个尺寸为 800x1000 的独立图像?

答案1

使用解决了它ImageMagick 的转换-作物几何形状+repage:

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

答案2

使用 ImageMagick:

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

将创建一系列名为cropped_1.pngcropped_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")

上面的代码对最终尺寸进行了硬编码,但它可以轻松地转换为自己的完整脚本,所有输入均已参数化。如果有人需要这样的东西。

相关内容