我下面有以下 php 函数,它将本地 PDF 文件转换为图像。简而言之,我希望将每个 PDF 页面转换为单独的图像。
该函数将 PDF 转换为图像 - 但仅限最后一页。我想every要转换为图像并编号的 PDF 页面。不仅仅是 PDF 的最后一页。
目前,该函数将last页的example.pdf
to example-0.jpg
。我确定问题在于for
方法。我缺少什么?
$file_name = 'example.pdf'; // using just for this example, I pull $file_name from another function
function _create_preview_images($file_name) {
// Strip document extension
$file_name = basename($file_name, '.pdf');
// Convert this document
// Each page to single image
$img = new imagick('uploads/'.$file_name.'.pdf');
// Set background color and flatten
// Prevents black background on objects with transparency
$img->setImageBackgroundColor('white');
$img = $img->flattenImages();
// Set image resolution
// Determine num of pages
$img->setResolution(300,300);
$num_pages = $img->getNumberImages();
// Compress Image Quality
$img->setImageCompressionQuality(100);
// Convert PDF pages to images
for($i = 0;$i < $num_pages; $i++) {
// Set iterator postion
$img->setIteratorIndex($i);
// Set image format
$img->setImageFormat('jpeg');
// Write Images to temp 'upload' folder
$img->writeImage('uploads/'.$file_name.'-'.$i.'.jpg');
}
$img->destroy();
}
似乎most我的代码是正确的。问题是,我正在使用$img->flattenImages();
错误地。这merges
将一系列图像合并为一个图像。就像 Photoshop 在导出图像时将所有可见图层拼合到图像中一样jpg
.
我删除了上面的行,各个文件都按预期写入。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)