2016-07-22 14 views
0

我正在嘗試使用magento調整我的圖像的大小Varien_Image class.But當我想更改圖像尺寸時,我必須每次清空調整大小的文件夾。我厭倦了這個。當我在維度上進行更改時,它會自動重新創建該維度的圖像。用於調整大小的低代碼或函數。使用magento代碼調整我們的自定義圖像的最佳方式

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"; 
    } 

} 

回答

0

可以傳遞與文件夾結構的寬度等下列到不同的文件夾中保存不同大小的圖像。

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

+0

這個調整函數dear'$ imageObj-> setAllowRenameFiles(true);'so so erorr – Zaheerabbas

+0

其實我提到的函數是在Varien_File_Uploader類中定義的。 第二種方法適合你 – mjdevloper

相關問題