ImageMagick使用超过2GB内存转换PDF文件

12

ImageMagick使用大量内存来转换PDF文件——超过2GB。我使用的命令是:

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

如何改进?我有1GB的限制,否则进程会被无情地终止。 ):

1个回答

19
请使用内存限制选项。
选项的用法如下: http://www.imagemagick.org/script/command-line-options.php#limit

-limit type value

设置像素缓存资源限制。

可选择的类型有:area、disk、file、map、memory、threads 或 time。

file 的值是文件数量。其他限制以字节为单位。可以通过 SI 前缀来定义内存、映射、区域和磁盘资源限制的参数(例如 100MB)。

默认情况下,限制为 768 个文件,3GB 图像区域、1.5GiB 内存、3GiB 内存映射和 18.45EB 磁盘。如果计算机上有可用资源的信息,则会相对于可用资源进行调整。当达到任何限制时,ImageMagick 会以某种方式失败,但如果可能,会尝试采取补偿措施。例如,以下选项将限制内存:

-limit memory 32MiB -limit map 64MiB


2
这个不起作用。我得到一个错误,指出它无法分配足够的资源。 - MaiaVictor
那是他们命令行选项文档中的值示例。对于您特定的用途、质量设置等,您可能需要使用更高的限制。例如,尝试保持它在您最初问题中提到的1GB限制以下。如果仍然需要更多,您可能需要降低转换的质量,以适应您在进程中可以使用的RAM量。 - Randy Howard
1
这对我很有效。当调用 convert *.png out.pdf 时,转换进程会被终止并且我会遇到间歇性的冻结。现在间歇性的冻结仍然存在,但是不那么严重了。此外,我设置了 -limit thread 2 - Michael Franzl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接