storeManager = $context->getStoreManager();
$this->imageFactory = $imageFactory;
$this->_filesystem = $filesystem;
$this->_directory = $filesystem->getDirectoryWrite(DirectoryList::MEDIA);
parent::__construct(
$context,
$data
);
}
/**
* @param $imageName string imagename only(abc.jpg)
* @param $width int
* @param $height int
* @return string
*/
public function getResizeImage($imageName,$width = 258,$height = 200)
{
/* Real path of image from directory */
$realPath = $this->_filesystem->getDirectoryRead(DirectoryList::MEDIA)->getAbsolutePath('catalog/category/'.$imageName);
if (!$this->_directory->isFile($realPath) || !$this->_directory->isExist($realPath)) {
return false;
}
/* Target directory path where our resized image will be save */
$targetDir = $this->_filesystem->getDirectoryRead(DirectoryList::MEDIA)->getAbsolutePath('resized/'.$width.'x'.$height);
$pathTargetDir = $this->_directory->getRelativePath($targetDir);
/* If Directory not available, create it */
if (!$this->_directory->isExist($pathTargetDir)) {
$this->_directory->create($pathTargetDir);
}
if (!$this->_directory->isExist($pathTargetDir)) {
return false;
}
$image = $this->imageFactory->create();
$image->open($realPath);
$image->keepAspectRatio(true);
$image->resize($width,$height);
$dest = $targetDir . '/' . pathinfo($realPath, PATHINFO_BASENAME);
$image->save($dest);
if ($this->_directory->isFile($this->_directory->getRelativePath($dest))) {
return $this->storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA).'resized/'.$width.'x'.$height.'/'.$imageName;
}
return false;
}
}
How to resize image in magento 2
Apr 7, 2022 GMT+7
Tags