加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 使用Imagick在JPG上叠加PNG

发布时间:2020-12-13 18:25:47 所属栏目:PHP教程 来源:网络整理
导读:我在最近几个小时试图在JPG背景上获得带有透明背景的PNG徽标.我已经尝试了几种方法和几个全局变量,但我似乎无法得到我想要的结果. “第一次尝试”: $overlay = new Imagick('overlay.png');$image = new Imagick('background.jpg');$image-compositeImage($
我在最近几个小时试图在JPG背景上获得带有透明背景的PNG徽标.我已经尝试了几种方法和几个全局变量,但我似乎无法得到我想要的结果.

“第一次尝试”:

$overlay = new Imagick('overlay.png');
$image = new Imagick('background.jpg');

$image->compositeImage($overlay,Imagick::COMPOSITE_DEFAULT,10,10);
$image->writeImage('background.jpg'); //replace original background

$overlay->destroy();
$image->destroy();

如您所见,Jaguar标志全是黑色.

“第二次尝试”

$overlay = new Imagick('overlay.png');
$image = new Imagick('background.jpg');

$image->setImageColorspace($overlay->getImageColorspace() ); 
$image->compositeImage($overlay,10);
$image->writeImage('background.jpg'); //replace original background

$overlay->destroy();
$image->destroy();

这一款Jaguar标志看起来应该是这样,但背景现在都搞砸了.

我已尝试使用Imagick::setImageMatte并尝试添加overlay to a white background(我认为我确实需要透明背景)并且仍然无法正确显示图像.我已经尝试了上述2个片段的许多其他变体,但它们似乎都使PNG完全或部分黑色.

我错过了什么或做错了什么?任何人都可以给我一个正确方向的推动吗?
请注意,这需要在PHP中完成.

非常感谢你!

我是个白痴!结果我忘记将图像从CMYK转换为RGB. 对于将来可能会遇到这种情况的人,请从我的无能中学习!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读