/**
  * @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);
 }
Exemplo n.º 2
0
 public function testShouldScaleBox()
 {
     $box = new Box(10, 20);
     $this->assertEquals(new Box(100, 200), $box->scale(10));
 }
Exemplo n.º 3
0
 /**
  * {@inheritdoc}
  */
 public function scale($ratio)
 {
     $box = $this->box->scale($ratio);
     return new self($box->getWidth(), $box->getHeight());
 }
Exemplo n.º 4
0
 /**
  * @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);
 }