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>