使用Imagick-resizeImage创建缩略图会创建黑暗图像 - PHP

时间:2018-04-11 23:21:06

标签: php imagemagick imagick

我能够成功调整(从适当调整大小的尺寸)我从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;
 } 

生成的缩略图:

enter image description here

可以在此处找到原始PDF的链接:

https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4905263/pdf/ksgt-06-04-1091539.pdf

2 个答案:

答案 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

enter image description here

请参阅http://us3.php.net/manual/en/imagick.setimagealphachannel.php

处的setImageAlphaChannel