2013-03-13 11 views
8

ImageMagick verwendet große Mengen an Speicher zum Konvertieren von PDF-Dateien - mehr als 2 GB. Der Befehl, den ich verwende ist:ImageMagick mit mehr als 2 GB Speicher zum Konvertieren von PDF-Dateien

convert -density 250 -resize 1280x myfile.pdf -interlace plane -strip -quality 40 -alpha flatten myfolder/myfile-%03d.jpg 

Wie kann dies verbessert werden? Ich habe ein 1GB Limit oder sonst wird der Prozess rücksichtslos getötet.):

Antwort

15

Verwenden Sie die Speicherbegrenzungsoption.

Option Verwendung hier gezeigt:

http://www.imagemagick.org/script/command-line-options.php#limit

limit Typ Wert

die Pixel-Cache Ressourcengrenze ein.

Wählen Sie aus: area, disk, file, map, memory, threads oder time.

Der Wert für file ist in Anzahl der Dateien. Die anderen Grenzen sind in Bytes. Definieren Sie Argumente für die Speicher-, Karten-, Bereichs- und Datenträgerressourcenbeschränkungen mit SI-Präfixen (z. B. 100 MB).

Standardmäßig sind die Grenzwerte 768 Dateien, 3 GB Bildbereich, 1,5 GB Speicher, 3GiB-Speicherzuordnung und 18,45EB Festplatte. Diese Grenzwerte werden im Verhältnis zu den verfügbaren Ressourcen auf Ihrem Computer angepasst, wenn diese Informationen verfügbar sind. Wenn ein Limit erreicht wird, schlägt ImageMagick in gewisser Weise fehl, versucht jedoch, Ausgleichsaktionen zu ergreifen, wenn dies möglich ist. Zum Beispiel die folgenden Grenzwerte Speicher:

-Grenze Speicher 32MiB -Grenze 64MiB Karte

+1

Das funktioniert nicht. Ich bekomme eine Fehlermeldung, dass es nicht genügend Ressourcen zuweisen konnte. – MaiaVictor

+0

Dies ist ein Beispielsatz von Werten aus ihrer Befehlszeilenoption docs. Möglicherweise müssen Sie höhere Grenzwerte als für Ihre spezielle Verwendung, Qualitätseinstellungen usw. verwenden. Versuchen Sie beispielsweise etwas, das es unter dem 1 GB-Limit hält, das Sie ursprünglich in Ihrer Frage angegeben haben. Wenn noch mehr benötigt wird, müssen Sie möglicherweise die Qualität der Konvertierung verringern, damit sie in den Arbeitsspeicher passt, den Sie in Ihrem Prozess verwenden können. –

+1

Das funktioniert für mich. Convert würde getötet werden und ich würde intermittierend einfrieren, wenn ich 'convert * .png out.pdf 'aufrufen würde. Intermittierende Einfrierungen treten immer noch auf, sind jedoch weniger schwerwiegend. Zusätzlich habe ich 'limit thread 2' gesetzt –