大佬教程收集整理的这篇文章主要介绍了php Imagemagick jpg黑色背景,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
<?PHP $file ="test.pdf"; $im = new imagick(realpath($file).'[0]'); $im->setImageFormat("jpg"); $im->resizeImage(200,200,1,0); // start buffering ob_start(); $thumbnail = $im->getImageBlob(); $contents = ob_get_contents(); ob_end_clean(); echo "<img src='data:image/jpg;base64,".base64_encode($thumbnail)."' />"; ?>
但由此产生的jpg有黑色背景而不是白色..我该如何解决这个问题?
$image = new Imagick; $image->setResolution(300,300); $image->readImage("{$originalPath}[0]"); $image->setImageFormat('jpg'); $image->scaleImage(500,500,true); $image->setImageAlphaChannel(Imagick::VIRTUALPIXELMETHOD_WHITE);
当我使用Laravel框架时,我将使用转换后的图像并使用Laravels文件系统存储它.
Storage::put($storePath,$image->getImageBlob());
更新:所以我最近改变了操作系统,虽然之前在我的Mac上的Ubuntu机器上工作,但某些图像仍然是黑色的.
我不得不将脚本更改为以下内容:
$image = new Imagick; $image->setResolution(300,300); $image->setBackgroundColor('white'); $image->readImage("{$originalPath}[0]"); $image->setImageFormat('jpg'); $image->scaleImage(500,true); $image->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN); $image->setImageAlphaChannel(Imagick::ALPHACHANNEL_REMOVE);
在读取图像之前设置背景颜色似乎很重要.我还压平任何可能的图层并删除alpha通道.我觉得我在我的Ubuntu机器上尝试了ALPHACHANNEL_REMOVE并且它没有工作,所以希望在这些答案之间,读者可以找到适合他们的东西.
以上是大佬教程为你收集整理的php Imagemagick jpg黑色背景全部内容,希望文章能够帮你解决php Imagemagick jpg黑色背景所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。