MrE*_*MrE 7 php imagemagick imagick
我在最近几个小时试图在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();
Run Code Online (Sandbox Code Playgroud)

如您所见,Jaguar标志全是黑色.
"第二次尝试"
$overlay = new Imagick('overlay.png');
$image = new Imagick('background.jpg');
$image->setImageColorspace($overlay->getImageColorspace() );
$image->compositeImage($overlay, Imagick::COMPOSITE_DEFAULT, 10, 10);
$image->writeImage('background.jpg'); //replace original background
$overlay->destroy();
$image->destroy();
Run Code Online (Sandbox Code Playgroud)

这个捷豹标志看起来应该是这样,但背景现在都搞砸了.
我尝试过使用Imagick :: setImageMatte并尝试将叠加层添加到白色背景中(我认为我确实需要有透明背景)并且仍然无法正确显示图像.我已经尝试了上述2个片段的许多其他变体,但它们似乎都使PNG完全或部分黑色.
我错过了什么或做错了什么?任何人都可以给我一个正确的方向吗?请注意,这需要用PHP完成.
非常感谢你!
| 归档时间: |
|
| 查看次数: |
8860 次 |
| 最近记录: |