code: protected function renderImageByImagick($code)
      {
          $backColor = $this->transparent ? new \ImagickPixel('transparent') : new \ImagickPixel('#' . str_pad(dechex($this->backColor), 6, 0, STR_PAD_LEFT));
          $foreColor = new \ImagickPixel('#' . str_pad(dechex($this->foreColor), 6, 0, STR_PAD_LEFT));
  
          $image = new \Imagick();
          $image->newImage($this->width, $this->height, $backColor);
  
          $draw = new \ImagickDraw();
          $draw->setFont($this->fontFile);
          $draw->setFontSize(30);
          $fontMetrics = $image->queryFontMetrics($draw, $code);
  
          $length = strlen($code);
          $w = (int) $fontMetrics['textWidth'] - 8 + $this->offset * ($length - 1);
          $h = (int) $fontMetrics['textHeight'] - 8;
          $scale = min(($this->width - $this->padding * 2) / $w, ($this->height - $this->padding * 2) / $h);
          $x = 10;
          $y = round($this->height * 27 / 40);
          for ($i = 0; $i < $length; ++$i) {
              $draw = new \ImagickDraw();
              $draw->setFont($this->fontFile);
              $draw->setFontSize((int) (mt_rand(26, 32) * $scale * 0.8));
              $draw->setFillColor($foreColor);
              $image->annotateImage($draw, $x, $y, mt_rand(-10, 10), $code[$i]);
              $fontMetrics = $image->queryFontMetrics($draw, $code[$i]);
              $x += (int) $fontMetrics['textWidth'] + $this->offset;
          }
  
          $image->setImageFormat('png');
          return $image->getImageBlob();
      }
docs: Renders the CAPTCHA image based on the code using ImageMagick library.
  @param string $code the verification code
  @return string image contents in PNG format.