/** * {@inheritdoc} */ public function resize(Media $media, File $in, File $out, $format, array $settings) { if (!array_key_exists('quality', $settings)) { $settings['quality'] = 100; } if (!isset($settings['width'])) { throw new \RuntimeException(sprintf('Width parameter is missing in context "%s" for provider "%s"', $media->getContext(), $media->getName())); } $image = $this->adapter->load($in->getContent()); $size = $media->getBox(); var_dump($size); if (null != $settings['height']) { if ($size->getHeight() > $size->getWidth()) { $higher = $size->getHeight(); $lower = $size->getWidth(); } else { $higher = $size->getWidth(); $lower = $size->getHeight(); } $crop = $higher - $lower; if ($crop > 0) { $point = $higher == $size->getHeight() ? new Point(0, 0) : new Point($crop / 2, 0); $image->crop($point, new Box($lower, $lower)); $size = $image->getSize(); } } $settings['height'] = (int) ($settings['width'] * $size->getHeight() / $size->getWidth()); if ($settings['height'] < $size->getHeight() && $settings['width'] < $size->getWidth()) { $content = $image->thumbnail(new Box($settings['width'], $settings['height']), $this->mode)->get($format, array('quality' => $settings['quality'])); } else { $content = $image->get($format, array('quality' => $settings['quality'])); } $out->setContent($content); }
/** * {@inheritdoc} */ public function resize(Media $media, File $in, File $out, $format, array $settings) { if (!array_key_exists('quality', $settings)) { $settings['quality'] = 100; } if (!isset($settings['width'])) { throw new \RuntimeException(sprintf('Width parameter is missing in context "%s" for provider "%s"', $media->getContext(), $media->getName())); } $image = $this->adapter->load($in->getContent()); $content = $image->thumbnail($this->getBox($media, $settings), $this->mode)->get($format, array('quality' => $settings['quality'])); $out->setContent($content); }
private function mediaObjectToArray(Media $media) { $mediaArray = null; if ($media->getId()) { if (!$this->advertisement) { $this->advertisement = new Advertisement(); $this->advertisement->setInstitution($this->institution); } $mediaArray = array('id' => $media->getId(), 'uuid' => $media->getUuid(), 'name' => $media->getName(), 'caption' => $media->getCaption()); } return $mediaArray; }
private function doMove(Institution $institution, Media $media, $sizes) { // point file system to new path $this->fileSystem->rename($institution->getId() . '/' . $media->getName(), $media->getName()); // do resize $this->institutionMediaService->resize($media, $sizes); }
/** * Delete Media and removed all files related to the media * @param Media $media object * @param array $sizes Other image sizes of the media * @return boolean */ public function deleteMediaAndFiles($media, $sizes = array()) { $result = false; if ($media) { $mediaName = $media->getName(); $this->entityManager->remove($media); try { $this->entityManager->flush(); //$this->filesystem->delete($mediaName); foreach ($sizes as $each) { $key = $each . '_' . $mediaName; if ($this->filesystem->has($key)) { $this->filesystem->delete($key); } } $result = true; } catch (\Exception $e) { $result = false; var_dump($e); } } return $result; }