2016-07-22 7 views
0

magento Varien_Image class.Butを使用して画像のサイズを変更しようとしていますが、画像のサイズを変更したいときは毎回サイズ変更したフォルダを空にしてください。私は次元を変更し、自動的にその次元の画像を再現します。マゼンタコードでカスタム画像のサイズを変更する最も良い方法

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

このリサイズ関数は '$ imageObj-> setAllowRenameFiles(true);'です。erorr – Zaheerabbas

+0

実際に言及している関数は、Varien_File_Uploaderクラスで定義されています。 2番目のアプローチはあなたに適しています – mjdevloper

関連する問題