ImageMagick beschneidet ein riesiges Bild

Ich versuche, Fliesen von einem sehr großen Bild zu verursachen, das 40000x40000 sagt

Ich habe ein Skript online für imagemagick gefunden, mit dem er die Kacheln beschneidet. es funktioniert gut bei kleinen Bildern wie 10000x5000

Sobald ich größer werde, wird zu viel Speicher belegt und der Computer stirbt.

Ich habe die Limit-Optionen hinzugefügt, aber sie scheinen keine Auswirkungen zu haben

Ich habe den Monitor drin, aber es hilft nicht, da das Skript nur verlangsamt und die Maschine blockiert

es scheint nur zu verschlingen wie 50gig Swap-Disk und dann die Maschine zu töten

Ich denke, das Problem ist, dass beim Zuschneiden jeder Kachel diese im Gedächtnis bleiben. Was ich denke ich brauche, ist, dass es jede Kachel auf die Festplatte schreibt, während es sie erstellt, und nicht alle im Speicher ablegt.

Hier ist das Skript so weit

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

Antworten auf die Frage(4)

Ihre Antwort auf die Frage