Ver7中的Alpha通道问题

时间:2019-01-05 11:26:58

标签: php imagemagick

我正在使用Imagick的PHP模块为细节重新着色,直到现在,我一直在使用6.9.6-2版本,但任务没有问题,但是在更新到7.0.7-11之后,setImageAlphaChannel(Imagick::ALPHACHANNEL_SHAPE)并没有工作正常。

ver6中的输出为:https://i.imgur.com/QaxNKwq.png

ver7中的输出为:https://i.imgur.com/xujoiDu.png

如果仅用ALPHACHANNEL_EXTRACT提取Alpha,它将保留图像的所有细节,但是一旦更改颜色后对它进行整形,就会破坏质量。

function colorLayers($color,$path,$name,$detailCounter) {
    $imagedata = $path.'\\'.$name.'\\color'.$detailCounter.'.png';
    $imagick = new Imagick($imagedata);
    $imagick->setImageAlphaChannel(Imagick::ALPHACHANNEL_EXTRACT);
    $imagick->setImageBackgroundColor($color);
    $imagick->setImageAlphaChannel(Imagick::ALPHACHANNEL_SHAPE);
    $base64 = base64_encode($imagick);
    return $base64;
}

0 个答案:

没有答案