我希望我的背景变成白色。我看了其他问题,但没有一个答案能真正解决这个问题。
我使用的是imagick版本2.3,以下是我所拥有的:
$this->_object = new Imagick();
$this->_object->setResolution(300, 300);
$this->_object->readImage($fileRead);
$this->_object->setImageMatte(true);
$this->_object->setImageMatteColor("white");
$this->_object->setImageAlphaChannel(Imagick::ALPHACHANNEL_OPAQUE);
我试过了
setBackgroundColor, setImageBackgroundColor, composite over a white image
这些似乎都不起作用。有什么建议吗?
最佳答案
jpg扩展不支持后台透明,需要使用png。对于其他站点,如果您有一个带有写背景的img,则可以使用以下代码将此颜色设置为透明:
$route = "MiOldJpgWriteBackground.jpg";
$salida = 'MiNewTransparentFile.png';
exec("convert $route $salida");
exec("convert $salida -bordercolor white -border 1x1 \
-alpha set -channel RGBA -fuzz 10% \
-fill none -floodfill +0+0 white \
-shave 1x1 $salida");
exec("rm $route");
关于php - Imagick-将PNG转换为JPG,透明背景变为黑色,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9022842/