【发布时间】:2015-11-03 03:03:21
【问题描述】:
我正在尝试将包含多个页面的 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- > thumbnailImage (990,0) 行,则不会生成核心文件,但 JPG 将没有正确的宽度。问题是:为什么会生成这个文件,有没有办法避免这种情况?我可以用其他方式调整图像大小吗?
我正在使用 imagick ver 6.7.2-7 2015-07-23 和 cpanel
谁能解释一下出了什么问题?
PS:我不想使用 exec 函数,因为它会占用大量 CPU 和 RAM。
【问题讨论】:
-
"只有当我使用 thumbnailImage() 时才会创建一个 core.xxxx 文件" 代码中没有 core 这个词。因此,显然您遇到的问题与您发布的代码无关。请您澄清一下您遇到了什么问题。
-
Danack所有生成的JPG必须有990px的宽度。所以我使用 thumbnailImage() 函数来做到这一点。但是当我使用这个功能时,会生成一个大小为 200mb 或更大的核心文件,几天之内就填满了我在磁盘上的所有空间。如果我注释掉 $ im- > thumbnailImage (990,0) 行,则不会生成核心文件,但 JPG 将没有正确的宽度。问题是:为什么会生成这个文件,有没有办法避免这种情况?我可以用其他方式调整图像大小吗?感谢您的关注。
-
你的问题还是很难理解......你的意思是有一个临时文件没有被删除吗?
-
正是丹纳克。每次我运行脚本时,都会有一个巨大的 core.#### 文件被存放到脚本所在的目录中,并且消耗了大量的磁盘空间。我想避免或自动删除这些核心文件。似乎核心转储仅在程序崩溃时发生,但所有 JPG 都正确生成。感谢您的帮助,如果您需要我可以再次解释。
标签: php image-resizing imagick