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]