/** * @covers ByJG\ImageUtil\ImageUtil::restore * @todo Implement testRestore(). */ public function testRestore() { $expected = $this->getResourceString($this->object->getImage()); // Do some operactions $this->object->rotate(30); $this->object->flip(Flip::BOTH); $this->object->resizeSquare(40); $this->assertNotEquals($expected, $this->getResourceString($this->object->getImage())); $this->object->restore(); $this->assertEquals($expected, $this->getResourceString($this->object->getImage())); }
/** * Stamp an image in the current image. * * @param ImageUtil|string $srcImage The image path or the image gd resource. * @param int $position * @param int $padding * @param int $oppacity * @return ImageUtil * @throws ImageUtilException */ public function stampImage($srcImage, $position = StampPosition::BOTTOMRIGHT, $padding = 5, $oppacity = 100) { $dstImage = $this->image; if ($srcImage instanceof ImageUtil) { $imageUtil = $srcImage; } else { $imageUtil = new ImageUtil($srcImage); } $watermark = $imageUtil->getImage(); imagealphablending($dstImage, true); imagealphablending($watermark, true); $dstWidth = imagesx($dstImage); $dstHeight = imagesy($dstImage); $srcWIdth = imagesx($watermark); $srcHeight = imagesy($watermark); if (is_array($padding)) { $padx = $padding[0]; $pady = $padding[1]; } else { $padx = $pady = $padding; } if ($position == StampPosition::RANDOM) { $position = rand(1, 9); } switch ($position) { case StampPosition::TOPRIGHT: $dstX = $dstWidth - $srcWIdth - $padx; $dstY = $pady; break; case StampPosition::TOPLEFT: $dstX = $padx; $dstY = $pady; break; case StampPosition::BOTTOMRIGHT: $dstX = $dstWidth - $srcWIdth - $padx; $dstY = $dstHeight - $srcHeight - $pady; break; case StampPosition::BOTTOMLEFT: $dstX = $padx; $dstY = $dstHeight - $srcHeight - $pady; break; case StampPosition::CENTER: $dstX = $dstWidth / 2 - $srcWIdth / 2; $dstY = $dstHeight / 2 - $srcHeight / 2; break; case StampPosition::TOP: $dstX = $dstWidth / 2 - $srcWIdth / 2; $dstY = $pady; break; case StampPosition::BOTTOM: $dstX = $dstWidth / 2 - $srcWIdth / 2; $dstY = $dstHeight - $srcHeight - $pady; break; case StampPosition::LEFT: $dstX = $padx; $dstY = $dstHeight / 2 - $srcHeight / 2; break; case StampPosition::RIGHT: $dstX = $dstWidth - $srcWIdth - $padx; $dstY = $dstHeight / 2 - $srcHeight / 2; break; default: throw new ImageUtilException('Invalid Stamp Position'); } imagecopymerge($dstImage, $watermark, $dstX, $dstY, 0, 0, $srcWIdth, $srcHeight, $oppacity); $this->image = $dstImage; return $this; }