0

I want to resize only one catalog product images. Is it possible in magento2?

I already know the command for resizing catalog image:

php bin/magento catalog:images:resize

but i want to do this for only one product images

  • using command or programmatically ? – Rk Rathod Apr 4 at 10:19
  • any way !! but i got the solution – Rutvee Sojitra Apr 4 at 10:56
0

Magento does not have any command line. So you have to build the command yourself.

Take look on Magento\MediaStorage\Service\ImageResize::resizeFromThemes

  • unable to find resizeFromThemes in Imageresize – Rutvee Sojitra Apr 4 at 9:42
0

Try This in Block File :-

       protected $_filesystem ;
       protected $_imageFactory;
       public function __construct(            
            \Magento\Framework\Filesystem $filesystem,         
            \Magento\Framework\Image\AdapterFactory $imageFactory         
            ){         
                 $this->_filesystem = $filesystem;               
                 $this->_imageFactory = $imageFactory;         
            }

        public function resize($image, $width = null, $height = null)
        {
            $absolutePath = $this->_filesystem->getDirectoryRead(\Magento\Framework\App\Filesystem\DirectoryList::MEDIA)->getAbsolutePath('custom_module/posts/').$image;
            if (!file_exists($absolutePath)) return false;
            $imageResized = $this->_filesystem->getDirectoryRead(\Magento\Framework\App\Filesystem\DirectoryList::MEDIA)->getAbsolutePath('resized/'.$width.'/').$image;
            if (!file_exists($imageResized)) {

                $imageResize = $this->_imageFactory->create();         
                $imageResize->open($absolutePath);
                $imageResize->constrainOnly(TRUE);         
                $imageResize->keepTransparency(TRUE);         
                $imageResize->keepFrame(FALSE);         
                $imageResize->keepAspectRatio(TRUE);         
                $imageResize->resize($width,$height);  
                //destination folder                
                $destination = $imageResized ;    
                //save image      
                $imageResize->save($destination);         
            } 
            $resizedURL = $this->_storeManager->getStore()->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA).'resized/'.$width.'/'.$image;
            return $resizedURL;
      } 

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.