/** * {@inheritdoc} */ protected function doApply(CanvasInterface $canvas) { $width = $canvas->getWidth(); $height = $canvas->getHeight(); $copy = new \Jaguar\Canvas($canvas->getDimension()); $srcBox = null; $destBox = null; switch ($this->getDirection()) { case self::FLIP_VERTICAL: $srcBox = new Box(new Dimension($width, -$height), new Coordinate(0, $height - 1)); $destBox = new Box(new Dimension($width, $height), new Coordinate(0, 0)); break; case self::FLIP_HORIZONTAL: $srcBox = new Box(new Dimension(-$width, $height), new Coordinate($width - 1, 0)); $destBox = new Box(new Dimension($width, $height), new Coordinate(0, 0)); break; case self::FLIP_BOTH: $srcBox = new Box(new Dimension(-$width, -$height), new Coordinate($width - 1, $height - 1)); $destBox = new Box(new Dimension($width, $height), new Coordinate(0, 0)); break; } $copy->paste($canvas, $srcBox, $destBox); $canvas->destroy(); $canvas->setHandler($copy->getHandler()); }
/** * {@inheritdoc} */ protected function doApply(CanvasInterface $canvas) { $copy = new \Jaguar\Canvas($this->getDimension()); $copy->paste($canvas, null, new Box($this->getDimension())); $canvas->destroy(); $canvas->setHandler($copy->getHandler()); }
/** * {@inheritdoc} */ protected function doApply(CanvasInterface $canvas) { $box = is_null($this->getBox()) ? new Box($canvas->getDimension()) : $this->getBox(); $compine = new \Jaguar\Canvas($canvas->getDimension()); $compine->paste($canvas); $compine->paste($this->getOverlay(), null, $box); imagelayereffect($canvas->getHandler(), IMG_EFFECT_OVERLAY); imagecopymerge($canvas->getHandler(), $compine->getHandler(), 0, 0, 0, 0, $canvas->getWidth(), $canvas->getHeight(), $this->getAmount()); $canvas->alphaBlending(true); $compine->destroy(); }