我有一个PHP脚本来创建pdf文件的png缩略图,如下所示;
$file ="test.pdf";
$im = new imagick(realpath($file).'[0]');
$im->setImageFormat("png");
$im->resizeImage(200,200,1,0);
// start buffering
ob_start();
$thumbnail = $im->getImageBlob();
$contents = ob_get_contents();
ob_end_clean();
echo "";
?>
返回缩略图,但背景是透明的.我想设置白色背景颜色,(将alpha图层更改为白色).我怎样才能做到这一点??
提前致谢…:)
blasteralfred
解决方法:
我正在做类似的事情,虽然我实际上是将图像写入磁盘 –
当我使用你的直接输出时,它工作,我得到了PDF的实际颜色.
通过一些调试,我发现这个问题实际上与之相关
imagick::resizeImage()
功能.
无论出于何种原因,当您设置所有颜色,压缩等时,resizeImage会添加黑色背景.
我的解决方案是使用GD进行大小调整,这样我就可以进行完整的动态调整 – 由于你对这种事情不感兴趣,我只想使用图像采样功能.你的代码应该是这样的:
$file ="test.pdf";
$im = new imagick(realpath($file).'[0]');
$im->setCompression(Imagick::COMPRESSION_JPEG);
$im->setCompressionQuality(80);
$im->setImageFormat("jpeg");
$im->sampleImage(200,200);
// start buffering
ob_start();
$thumbnail = $im->getImageBlob();
$contents = ob_get_contents();
ob_end_clean();
echo "";
?>
标签:php,imagemagick,imagick
来源: https://codeday.me/bug/20190531/1187306.html