/** * Returns a resized image for provided source file * * If an appropriate resized version already exists it's reused. * * @param ResourceType $sourceFileResourceType * @param string $sourceFilePath * @param string $sourceFileName * @param int $requestedWidth * @param int $requestedHeight * * @return ResizedImage * * @throws \Exception */ public function getResizedImage(ResourceType $sourceFileResourceType, $sourceFilePath, $sourceFileName, $requestedWidth, $requestedHeight) { $resizedImage = new ResizedImage($this, $sourceFileResourceType, $sourceFilePath, $sourceFileName, $requestedWidth, $requestedHeight); if (!$this->acl->isAllowed($sourceFileResourceType->getName(), $sourceFilePath, Permission::IMAGE_RESIZE_CUSTOM) && !$this->isSizeAllowedInConfig($requestedWidth, $requestedHeight)) { throw new UnauthorizedException('Provided size is not allowed in images.sizes configuration'); } if (!$resizedImage->exists() && $resizedImage->requestedSizeIsValid()) { $resizedImage->create(); $resizeImageEvent = new ResizeImageEvent($this->app, $resizedImage); $this->dispatcher->dispatch(CKFinderEvent::CREATE_RESIZED_IMAGE, $resizeImageEvent); if (!$resizeImageEvent->isPropagationStopped()) { $resizedImage = $resizeImageEvent->getResizedImage(); $resizedImage->save(); } } return $resizedImage; }