使用magento代码调整自定义图像大小的最佳方法

时间:2016-07-22 12:55:31

标签: magento magento-1.9 image-resizing

我正在尝试使用magento Varien_Image类来调整图像大小。但是当我想要更改图像尺寸时,我每次都要清空调整大小的文件夹。我厌倦了这样做。当我改变维度它将自动重新创建该维度的图像。我用于调整大小的代码或函数。

public function getProductImage($image,$width = 270,$height = 270){
     if($image!="" && file_exists(Mage::getBaseDir('media').DS.$image)){

        $_imageUrl = Mage::getBaseDir('media').DS.$image;
        $imageResized = Mage::getBaseDir('media').DS.'resized/'.$image;
        if (!file_exists($imageResized)&&file_exists($_imageUrl)) {
           $imageObj = new Varien_Image($_imageUrl);
            $imageObj->constrainOnly(TRUE);
            $imageObj->keepAspectRatio(TRUE);
            $imageObj->keepFrame(FALSE);
            $imageObj->quality(100);
            $imageObj->resize($width, null);
            $imageObj->save($imageResized);
        $resizedURL = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . "resized/" . $image;
            return $resizedURL;
        } 
        elseif(file_exists($imageResized)) {
             $resizedURL = Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA) . "resized/" . $image;
            return $resizedURL;    
        }
        else{
            return Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_MEDIA).$image;    
        }
    }
    else
    {
        return  Mage::getBaseUrl('media')."banner/resized/240X/placeholder.png";
    }

}

1 个答案:

答案 0 :(得分:0)

您可以使用以下文件夹结构传递宽度,以便将不同尺寸的图像保存在不同的文件夹中。

$ imageResized = Mage :: getBaseDir('media')。DS.'resized /'.$ width。'/'。$ image;