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


Answers:


27

使用convert -crop geometry + repage解决了它:

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

如果要将其应用于一批文件,请尝试以下操作:ls -1 *.png | sed 's,.*,& &,' | xargs -n 2 convert -crop 100%x20% +repage
JPT

23

使用ImageMagick:

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

将创建一个名为cropped_1.png,的文件序列cropped_2.png,依此类推。

参考文献


OP表示使用可以解决此问题convert -crop geometry +repage。例如:convert -crop 100%x20% +repage image.png image.png
slm

1
+repage 考虑重新:图象偏移能够格式等等

这与@shley的答案相比如何?
CMCDragonkai

@CMCDragonkai它本质上是一样的,他们使用的百分比所以这将任何尺寸的图像分割成5个垂直切片,而不是被专门为800x5000情况下写入
outlyer

1

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

上面的代码已将最终大小进行了硬编码,但是可以很容易地将其转换为具有所有输入参数的完整脚本。如果有人需要这样的东西。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.