Magento: Resize image in custom module in magento

In this article I'll discuss how to resize image in custom module in Magento.

First step is Open your module "helper/data.php" and paste the below code in your helper class.

[php]
<?php

class Namespace_Modulename_Helper_Data extends Mage_Core_Helper_Abstract

{

public function resizeImage($imageName, $width=NULL, $height=NULL, $imagePath=NULL)

{

$imagePath = str_replace(“/”, DS, $imagePath);

$imagePathFull = Mage::getBaseDir(‘media’) . DS . $imagePath . DS . $imageName;

if($width == NULL && $height == NULL) {

$width = 450;

$height = 450;

}

$resizePath = $width . ‘x’ . $height;

$resizePathFull = Mage::getBaseDir(‘media’) . DS . $imagePath . DS . $resizePath . DS . $imageName;

if (file_exists($imagePathFull) && !file_exists($resizePathFull)) {

$imageObj = new Varien_Image($imagePathFull);

$imageObj->constrainOnly(TRUE);

$imageObj->keepAspectRatio(TRUE);

$imageObj->resize($width,$height);

$imageObj->save($resizePathFull);

}

$imagePath=str_replace(DS, “/”, $imagePath);

return Mage::getBaseUrl(“media”) . $imagePath . “/” . $resizePath . “/” . $imageName;

}

}
[/php]

Second Step is, use below code in any template/phtml file of your module.

[html]
<img src=”<?php echo Mage::helper(‘yourmodulename’)->resizeImage(‘imagesname.jpg’, 450, 450, ‘path/image’); ?>” style=”padding:10px;”>
[/html]