2009-11-25 63 views
2

在Magento網站上,我只是每個產品上傳一張圖片,並將其作爲基礎,小圖和縮略圖。但是,我的照片不是方形的,所以我將黑色背景添加到創建的縮略圖中。任何想法如何將其改爲白色背景?Magento - 從自動縮略圖中刪除黑色背景?

http://www.magentocommerce.com/?ACT=25&fid=10&aid=10785_osKeOnfKFLFvgqVYbr0j&board_id=1

我搜索了這一點,但無法找到任何地方一個像樣的答案...

回答

3

我發現了一個辦法解決這個。副作用是用於圖像大小調整的類將用白色(甚至是透明的)填充所有圖像,但這並不會影響Magento,因爲它不使用透明填充。所以要解決這個問題做到這一點:在你的Magento文件夾

  • 找到這一行

    $this->_fillBackgroundColor($newImage); 
    

    ,並與這條線替換它

    $this->_fillBackgroundColor($newImage,$frameWidth,$frameWidth); 
    
  • 查找

    1. 轉到lib\Varien\Image\Adapter\Gd2.php此行

      private function _fillBackgroundColor(&$imageResourceTo) 
      

      以及與此

      private function _fillBackgroundColor(&$imageResourceTo,$w,$h) 
      
    2. 取代它找到這段代碼

      if (!imagefill($imageResourceTo, 0, 0, $color)) { 
          throw new Exception("Failed to fill image background with color {$r} {$g} {$b}."); 
      } 
      

      以及與此

      imagefilledrectangle($imageResourceTo,0,0,$w,$h,$color); 
      

    這就是它取代它。問題來自於Gd2中的PHP函數imagefill,並不適用於某些設置。這是一個解決方法,使用imagefilledrectangle,併爲我工作。希望它也能解決你的問題。

  • +0

    很酷,我會給你一個鏡頭。我通過使用圖像作爲的背景自己解決了這個問題,我用它代替插入的圖像 2009-12-08 22:33:02

    3

    Adi's answer上點4糾錯:

    4.找到這個代碼

    if (!imagefill($imageResourceTo, 0, 0, $color)) { throw new Exception("Failed to fill image background with color {$r} {$g} {$b}."); } 
    

    並將其替換爲:

    if (!imagefilledrectangle($imageResourceTo,0,0,$w,$h,$color)) { 
        throw new Exception("Failed to fill image background with color {$r} {$g} {$b}."); 
    
    2

    Varien_Image其在Magento使用提供了可能性以設置縮放圖像的背景顏色。您可以使用類似的代碼輸出圖像(調整方法?),使白色背景前的地方:

    $image->backgroundColor(array(255, 255, 255)); 
    
    0

    阿迪的回答使我在正確的方向,但我還是讓我的圖像的黑線。我發現當圖像被剪裁時,Magento會創建一個畫布背景,然後創建一個圖像。畫布在我的圖像上產生黑線。

    我設法通過增加阿迪的更改,然後另外,在作物()函數(在同一個文件),以解決它,我說:

    list($r, $g, $b) = $this->_backgroundColor; 
    $bg_color = imagecolorallocate($canvas, $r, $g, $b); 
    imagefill($canvas, 0, 0, $bg_color); 
    

    功能(約行554後,後adi的變化):

    imagecopyresampled 
    

    現在我的圖像有他們應該有的背景顏色!

    另外一點需要注意的,而不是直接在覈心編輯這個文件,它應該被複制到:

    app/code/local/Varien/Image/Adapter/Gd2.php 
    

    希望這可以幫助別人有同樣的問題掙扎。