/**
  * {@inheritdoc}
  */
 protected function doApply(CanvasInterface $canvas)
 {
     $c1 = clone $this->getFirstColor();
     $c2 = clone $this->getSecondColor();
     $line = new Line();
     $width = $canvas->getWidth();
     $height = $canvas->getHeight();
     for ($i = 0; $i < $this->getWidth(); $i++) {
         $alpha = round($i / $this->getWidth() * 127);
         $c1->setAlpha($alpha);
         $c2->setAlpha($alpha);
         $line->setStart(new Coordinate($i, $i + 1))->setEnd(new Coordinate($i, $height - $i - 1))->setColor($c1)->draw($canvas)->setStart(new Coordinate($i, $i))->setEnd(new Coordinate($width - $i, $i))->draw($canvas)->setStart(new Coordinate($width - $i, $height - $i - 1))->setEnd(new Coordinate($width - $i, $i + 1))->setColor($c2)->draw($canvas)->setStart(new Coordinate($width - $i, $height - $i - 1))->setEnd(new Coordinate($i, $height - $i))->draw($canvas);
     }
 }