2009-11-25 92 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 
    

    希望这可以帮助别人有同样的问题挣扎。