我能够成功调整(从适当调整大小的尺寸)我从pdf文档的一页创建的图像。但是,我不明白为什么结果是带有白色斑块的暗调整大小的图像。请问有人可以提供建议吗?
PHP代码:
// Create image from first page of pdf document
$im = new imagick('1Mpublic.pdf[0]');
$im->setImageFormat('jpg');
$imageHeight = $im -> getImageHeight();
$imageWidth = $im -> getImageWidth();
$desiredImgWidth = 200;
$desiredImgHeight = resizedImageHeight($imageWidth, $imageHeight,
$desiredImgWidth);
$im -> resizeImage($desiredImgWidth, $desiredImgHeight,
imagick::STYLE_NORMAL, 1);
// Save image
$page = '1';
$saveToFolder = 'thumbnailFolder';
$fileName = 'thanhThumbNail_'.$page.'.jpg';
$saveImgToPath = $saveToFolder.'/'.$fileName;
$result = file_put_contents($saveImgToPath, $im);
function resizedImageHeight($imgWidth, $imgHeight, $desiredImgWidth){
$quoient = $imgWidth/$imgHeight;
$height = $desiredImgWidth/$quoient;
return $height;
}
生成的缩略图:
可以在此处找到原始PDF的链接:
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4905263/pdf/ksgt-06-04-1091539.pdf
答案 0 :(得分:1)
看起来没有定义背景颜色。您需要在阅读PDF文档之前设置背景颜色。
// Create image from first page of pdf document
$im = new imagick();
$im->setBackgroundColor('WHITE');
$im->readImage('1Mpublic.pdf[0]');
$im->setImageFormat('jpg');
答案 1 :(得分:1)
您的PDF具有透明度。 JPG不支持透明度,并且在PDF透明的情况下显示黑色。只需关闭透明度即可。在Imagemagick命令行中:
convert -density 300 ksgt-06-04-1091539.pdf[0] -alpha off result.jpg
请参阅http://us3.php.net/manual/en/imagick.setimagealphachannel.php
处的setImageAlphaChannel