Я использую PHP-модуль Imagick для перекрашивания деталей, и до сих пор я использовал версию 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
, она сохраняет все детали изображения, но как только я изменю его после изменения цвета, это ухудшает качество.
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;
}