我正在尝试将包含多个页面的PDF文件转换为不同的JPG。我正在使用上面的代码:
$pdf_in = 'file.pdf';
$img_array = array();
$im = new imagick();
$im->setResolution(144,144);
$im->readImage($pdf_in);
$im->setImageCompressionQuality(85);
$num_pages = $im->getnumberimages();
$i = 0;
for($x = 1;$x <= $num_pages; $x++) {
$im->setiteratorindex($i);
$im->thumbnailImage(990,0);
$im->setimageformat('jpeg');
$im->writeImage("page".$x.".jpg");
$i++;
}
$im->clear();
$im->destroy();
转换顺利,所有JPG都按预期创建。但是,仅当我使用thumbnailImage()函数时才会创建core.xxxx文件。
编辑:所有生成的JPG必须具有990px的宽度。所以我使用thumbnailImage()函数来做到这一点。但是当我使用这个函数时,每次运行脚本时都会生成一个大小为200mb或更多的core.xxxx文件,在几天内填满磁盘上的所有空间。如果我注释掉行$ im-&gt; thumbnailImage(990,0),核心文件未生成,但JPG的宽度不正确。问题是:为什么要生成这个文件,有没有办法避免这种情况?我可以用另一种方式调整图像大小吗?
我正在使用带有cpanel的imagick ver 6.7.2-7 2015-07-23
有人可以解释出现了什么问题吗?
PS:我不想使用exec函数,因为它需要大量的CPU和RAM使用。
答案 0 :(得分:0)
保留临时文件可能是您安装的ImageMagick版本中的错误,也可能是执行过程中应用程序崩溃的结果。
我认为您需要手动或通过常规任务来清理这些文件。例如http://www.imagemagick.org/discourse-server/viewtopic.php?t=15960
答案 1 :(得分:0)
我刚刚找到了解决方案。而不是使用
$im->thumbnailImage(990,0);
我用过
$im->scaleImage(990,0);
它有效。不再创建核心文件。我之前也尝试过函数resizeImage(),但这是同样的问题。感谢Danack的关注。问题解决了。