Создаю линейный градиент на картинку Спойлер <?php $im = new Imagick('save.png'); if (!$im->getImageAlphaChannel()) { $im->setImageAlphaChannel(Imagick::ALPHACHANNEL_SET); } $refl = $im; $gradient = new Imagick(); $gradient->newPseudoImage($refl->getImageWidth(), $refl->getImageHeight(), 'gradient:transparent-white'); $refl->compositeImage($gradient, imagick::COMPOSITE_DSTOUT, 0, 0); $canvas = new Imagick(); $width = $im->getImageWidth(); $height = $im->getImageHeight(); $canvas->newImage($width, $height, 'none'); $canvas->setImageFormat('png'); $canvas->compositeImage($im, imagick::COMPOSITE_SRCOVER, 0, 0); $canvas->compositeImage($refl, imagick::COMPOSITE_SRCOVER, 20, $im->getImageHeight()); $canvas->writeImages("new.png", true); PHP <?php $im = new Imagick('save.png'); if (!$im->getImageAlphaChannel()) { $im->setImageAlphaChannel(Imagick::ALPHACHANNEL_SET); } $refl = $im; $gradient = new Imagick(); $gradient->newPseudoImage($refl->getImageWidth(), $refl->getImageHeight(), 'gradient:transparent-white'); $refl->compositeImage($gradient, imagick::COMPOSITE_DSTOUT, 0, 0); $canvas = new Imagick(); $width = $im->getImageWidth(); $height = $im->getImageHeight(); $canvas->newImage($width, $height, 'none'); $canvas->setImageFormat('png'); $canvas->compositeImage($im, imagick::COMPOSITE_SRCOVER, 0, 0); $canvas->compositeImage($refl, imagick::COMPOSITE_SRCOVER, 20, $im->getImageHeight()); $canvas->writeImages("new.png", true); Но почему-то при изменении цвета (к примеру, на blue) в этой строчке: $gradient->newPseudoImage($refl->getImageWidth(), $refl->getImageHeight(), 'gradient:transparent-white'); Градиент по прежнему остаётся белым Спойлер Что не так в коде и почему я не могу изменить цвет?