/** * Resizes the image maintaining the proportion (A 800x600 image resized to 400x400 becomes to 400x300) * * @param integer|string $width The max width of the image. It can be a number (pixels) or percentaje * @param integer|string $height The max height of the image. It can be a number (pixels) or percentaje * @param boolean|null $enlarge * @param boolean $cover * * @return self */ public function resize($width, $height = 0, $enlarge = false, $cover = false) { $imageWidth = $this->getWidth(); $imageHeight = $this->getHeight(); $width = Dimmensions::getIntegerValue($width, $imageWidth); $height = Dimmensions::getIntegerValue($height, $imageHeight); list($width, $height) = Dimmensions::getResizeDimmensions($imageWidth, $imageHeight, $width, $height, $cover); if ($width === $imageWidth || !$enlarge && $width > $imageWidth) { return $this; } $this->image->resize($width, $height); return $this; }
/** * @dataProvider resizeDataProvider */ public function testResize($imageWidth, $imageHeight, $newWidth, $newHeight, $cover, $expectedWidth, $expectedHeight) { list($width, $height) = Dimmensions::getResizeDimmensions($imageWidth, $imageHeight, $newWidth, $newHeight, $cover); $this->assertSame($expectedWidth, $width); $this->assertSame($expectedHeight, $height); }