PHP:使用 ImageMagick 将 alpha channel 转换为白色背景

标签 php graphics imagemagick imagick

我正在尝试删除 PNG 文件的 alpha channel (透明度)并在 PHP 中将其替换为白色背景。

到目前为止,我已经使用 ImageMagick 尝试了几个功能,但都没有成功。这些是不起作用的功能:

    $iMagick->setImageAlphaChannel(Imagick::ALPHACHANNEL_DEACTIVATE);
    $iMagick->setImageBackgroundColor('#FFFFFF');
    $iMagick = $iMagick->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN);

setBackgroundColor('#FFFFFF') 而不是 setImageBackgroundColor('#FFFFFF') 也没有帮助。与在这 2 个函数中将 '#FFFFFF' 替换为 'white' 相同。

使用 ImageMagick 3.4.0RC6(发布日期:2016-11-29)与 ImageMagick 6.8.9-9 Q16 x86_64 2016-03-14 编译。当前版本(Ubuntu 16.04)。

有什么想法吗?提前致谢
宁斯基

最佳答案

只需省略您的第一行代码即可停用透明度并运行:

$iMagick->setImageBackgroundColor('#FFFFFF');
$iMagick = $iMagick->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN);

关于PHP:使用 ImageMagick 将 alpha channel 转换为白色背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41089170/

相关文章:

javascript - 了解 chop 二十面体的几何形状,以进行渲染

pdf - 使用 Ghostscript 或 ImageMagick 从 PDF 中删除/删除所有图像

r - 尝试从极坐标图片中裁剪出中心圆

javascript - jquery ajax 表单验证不适用于 GET 方法 codeigniter

php - 我可以在 Google Cloud Storage 中同时为多个对象创建签名网址吗?

php - stackoverflow.com、airbnb.com、google+、facebook.com 等开发中使用的工具?

c - 根据点旋转一个物体

image-processing - "Diff"使用 ImageMagick 强调的图像

php - 如何使用 jquery 重新加载页面或 div,然后像 Twitter 一样捕获更新?

php - 在 PHP 或其他任何程序中执行时间限制函数