php - Imagick - 将 PNG 转换为 JPG,透明背景变为黑色

标签 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

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

最佳答案

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/

相关文章:

javascript - JQuery无响应点击功能

php - 根据颜色查找表减少图像颜色(不包括透明)

go - 如何在 Go 语言中创建优化和渐进式图像(JPG、PNG)

php - ImageMagick 没有此图像格式的解码委托(delegate)

php - 如何使用 PHP 下载 2 个表格到 Excel 工作表

php - 尝试制作某种类型的 IF mySQL 语句

javascript - 页面加载触发函数,javascript

python - 如何在 python 中使用 wand 对图像进行阈值处理

c++ - 如何从 ImageMagick 图像获取 c 缓冲区

php - 使用 ImageMagick 检测 EXIF 方向和旋转图像