ImageMagick обрезать огромное изображение
Я пытаюсь создать плитку из огромного изображения, скажем, 40000x40000
i нашел сценарий для imagemagick, он обрезает плитки. он отлично работает на небольших изображениях, таких как, скажем, 10000x5000
раз я получу больше, то в конечном итоге использует много памяти, и компьютер умирает.
Я добавил предельные параметры, но они не влияют на результат
У меня есть монитор, но это не помогает, так как скрипт просто тормозит и блокирует машину
Кажется, что он просто сгорбился, как 50-гигабайт диска подкачки, а затем убил машин
Я думаю, что проблема в том, что, обрезая каждую плитку, она сохраняет их в памяти. Я думаю, что мне нужно, чтобы она записывала каждую плитку на диск при ее создании, а не сохраняла их все в памяти.
пока сценарий есть
<code> #!/bin/bash file=$1 function tile() { convert -monitor -limit memory 2GiB -limit map 2GiB -limit area 2GB $file -scale ${s}%x -crop 256x256 \ -set filename:tile "%[fx:page.x/256]_%[fx:page.y/256]" \ +repage +adjoin "${file%.*}_${s}_%[filename:tile].png" } s=100 tile s=50 tile </code>