“不推荐使用 Imagick::flattenImages 方法,应避免使用它”

Adi*_*dil 5 php image imagick

我不能使用 flatternImages() 函数,因为它已被弃用。

我必须使用

$im->setImageAlphaChannel(\Imagick::ALPHACHANNEL_REMOVE);
$im->mergeImageLayers(\Imagick::LAYERMETHOD_FLATTEN);
Run Code Online (Sandbox Code Playgroud)

但是 ALPHACHANNEL_REMOVE 常量是未定义的。

我该如何解决这个问题?

PS 我尝试使用 11 代替 \Imagick::ALPHACHANNEL_REMOVE 并得到错误:

“无法设置图像 Alpha 通道”

jos*_*mmo 8

根据php.net上的这个答案,您必须使用3.2.0b2之前的 ImageMagick 版本。

此时,您可以升级到最新版本的库或使用分配给常量的值Imagick::ALPHACHANNEL_REMOVE(即11):

$im->setImageBackgroundColor('white');
$im->setImageAlphaChannel(11); // Imagick::ALPHACHANNEL_REMOVE
$im->mergeImageLayers(Imagick::LAYERMETHOD_FLATTEN);
Run Code Online (Sandbox Code Playgroud)