/** * @throws \Imagine\Exception\InvalidArgumentException * * @param HealthCareAbroad\MediaBundle\Entity\Media $media * @param array $settings * * @return \Imagine\Image\Box */ private function computeBox(Media $media, array $settings) { if ($this->mode !== ImageInterface::THUMBNAIL_INSET && $this->mode !== ImageInterface::THUMBNAIL_OUTBOUND) { throw new InvalidArgumentException('Invalid mode specified'); } $size = new Box($settings['width'], $settings['height']); $ratios = array($settings['width'] / $size->getWidth(), $settings['height'] / $size->getHeight()); if ($this->mode === ImageInterface::THUMBNAIL_INSET) { $ratio = min($ratios); } else { $ratio = max($ratios); } return $size->scale($ratio); }
public function testShouldScaleBox() { $box = new Box(10, 20); $this->assertEquals(new Box(100, 200), $box->scale(10)); }
/** * {@inheritdoc} */ public function scale($ratio) { $box = $this->box->scale($ratio); return new self($box->getWidth(), $box->getHeight()); }
/** * @param Box $size * @param array $settings * * @throws InvalidArgumentException * * @return Box */ protected function computeBox(Box $size, array $settings) { if ($this->mode !== ImageInterface::THUMBNAIL_INSET && $this->mode !== ImageInterface::THUMBNAIL_OUTBOUND) { throw new InvalidArgumentException('Invalid mode specified'); } $ratios = [$settings['width'] / $size->getWidth(), $settings['height'] / $size->getHeight()]; if ($this->mode === ImageInterface::THUMBNAIL_INSET) { $ratio = min($ratios); } else { $ratio = max($ratios); } return $size->scale($ratio); }