想象 - 将PNG转换为JPG,透明背景变黑

时间:2012-01-26 17:52:31

标签: php imagemagick imagick

我希望我的背景最终变成白色。我已经看了其他问题,但没有一个答案似乎能真正解决这个问题。

我正在使用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

这些似乎都不起作用。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

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");