urlDecoder = $urlDecoder; $this->resultRawFactory = $resultRawFactory; } /** * Template directives callback * * @return \Magento\Framework\Controller\Result\Raw */ public function execute() { $directive = $this->getRequest()->getParam('___directive'); $directive = $this->urlDecoder->decode($directive); $imagePath = $this->_objectManager->create(\Magento\Cms\Model\Template\Filter::class)->filter($directive); /** @var \Magento\Framework\Image\Adapter\AdapterInterface $image */ $image = $this->_objectManager->get(\Magento\Framework\Image\AdapterFactory::class)->create(); /** @var \Magento\Framework\Controller\Result\Raw $resultRaw */ $resultRaw = $this->resultRawFactory->create(); try { $image->open($imagePath); $resultRaw->setHeader('Content-Type', $image->getMimeType()); $resultRaw->setContents($image->getImage()); } catch (\Exception $e) { $imagePath = $this->_objectManager->get( \Magento\Cms\Model\Wysiwyg\Config::class )->getSkinImagePlaceholderPath(); $image->open($imagePath); $resultRaw->setHeader('Content-Type', $image->getMimeType()); $resultRaw->setContents($image->getImage()); $this->_objectManager->get(\Psr\Log\LoggerInterface::class)->critical($e); } return $resultRaw; } }