/** * @param string $path * @param string $filter * @param Image $image * * @return string */ public function getFormattedImage($path, $filter, Image $image = null) { if (!$this->cacheManager->isStored($path, $filter)) { $config = $this->filterManager->getFilterConfiguration()->get($filter); if (isset($config['filters']['focused_crop'])) { $config['filters']['focused_crop']['object'] = $image; } $binary = $this->dataManager->find($filter, $path); $binary = $this->filterManager->applyFilter($binary, $filter, $config); $this->cacheManager->store($binary, $path, $filter); } return $this->cacheManager->resolve($path, $filter); }
/** * @param $entity * @param $type * @param null $filter * @return array|mixed */ public function getImageOptions($entity, $type, $filter = null) { $options = $entity->{'get' . ucfirst($type) . 'Options'}(); $options = json_decode($options, true); if (!$options || (array_key_exists('height', $options) && $options['height'] < 1 || array_key_exists('width', $options) && $options['width'] < 1)) { $defaultConfig = ['height' => 0, 'width' => 0, 'x' => 0, 'y' => 0]; if ($filter) { $config = $this->filterManager->getFilterConfiguration()->get($filter); if (isset($config['filters']) && isset($config['filters']['crop']) && isset($config['filters']['crop']['size'])) { $size = $config['filters']['crop']['size']; $defaultConfig['height'] = $size[1]; $defaultConfig['width'] = $size[0]; } if (isset($config['filters']) && isset($config['filters']['crop']) && isset($config['filters']['crop']['start'])) { $start = $config['filters']['crop']['start']; $defaultConfig['x'] = $start[0]; $defaultConfig['y'] = $start[1]; } } return $defaultConfig; } return $options; }