回复 Francois
<?php
$im->setImageBackgroundColor('white');
$im->setImageAlphaChannel(Imagick::ALPHACHANNEL_REMOVE);
$im->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN);
?>
Imagick::ALPHACHANNEL_REMOVE 已在 3.2.0b2(RC 之前)中添加:http://pecl.php.net/package-info.php?package=imagick&version=3.2.0b2
问题在于想要实现此功能但受限于 Imagick 版本 < 3.2.0b2 的人。他们无法使用此常量。但是,并非一切都丢失了。我找到了一个参考,有人使用整数使其工作:http://stackoverflow.com/q/28154179/1000608
他使用的数字是 11,这似乎表明 Imagick::ALPHACHANNEL_REMOVE 的值为 11,并且该函数在此用例中甚至在实现常量之前也能够正常工作。因此,如果您受限于 <3.2.0b2,则需要以下代码
<?php
$im->setImageBackgroundColor('white');
$im->setImageAlphaChannel(11);
$im->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN);
?>
这至少在 3.1.0~rc1-1 版本(Debian 7 中 php5-imagick 软件包的当前版本)中有效。