dataimagepng php_php – 设置imagemagick png图像背景颜色

我有一个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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值