为magento中的产品添加不同的缩略图大小

时间:2011-03-04 10:00:05

标签: image magento magento-1.4 image-resizing

我有一家销售眼镜,服装等的洋红色商店。问题是我希望我的眼镜有300px X 100px的缩略图和300px X 300px的缩略图。

我可以想到我可能采取的一些不同的路线,但我不确定每条路线对我店铺的升级性能有什么影响。 (目前正在使用Magento 1.4.2,因为我对1.5.x还没有信心)

路线1)向产品添加额外的图像尺寸

所以这条路线我会以某种方式在管理区域为我的产品添加一个额外的图像,每个产品都有一个眼镜大小的拇指和一个衣服大小的拇指。

路线2)根据属性设置更改缩略图尺寸

我会在图像大小调整脚本中添加一些case语句,以根据产品使用的属性集更改thumnail的大小。

如果有人对如何实现这一点有任何其他想法,我们将不胜感激!

1 个答案:

答案 0 :(得分:2)

对于这种商店来说,为每种产品(眼镜和服装)使用不同的属性集是一个非常好的主意。但是,您也可以尝试使用单独的属性来提及产品类型(glassesclothing之间)。

关于图像大小调整,我找到了一个非常好用的脚本,其代码如下: -

public function resizeImage($imageName, $width=NULL, $height=NULL, $imagePath=NULL) {
    $imagePath = str_replace("/", DS, $imagePath);
    $imagePathFull = Mage::getBaseDir('media') . DS . $imagePath . DS . $imageName;

    if ($width == NULL && $height == NULL) {
        $width = 100;
        $height = 100;
    }
    $resizePath = $width . 'x' . $height;
    $resizePathFull = Mage::getBaseDir('media') . DS . $imagePath . DS . $resizePath . DS . $imageName;

    if (file_exists($imagePathFull) && !file_exists($resizePathFull)) {
        $imageObj = new Varien_Image($imagePathFull);
        $imageObj->constrainOnly(TRUE);
        $imageObj->keepAspectRatio(TRUE);
        $imageObj->resize($width, $height);
        $imageObj->save($resizePathFull);
    }

    $imagePath = str_replace(DS, "/", $imagePath);
    return Mage::getBaseUrl("media") . $imagePath . "/" . $resizePath . "/" . $imageName;
}

你肯定需要对你想要提供的不同尺寸做一些调整,但它仍然是一段非常好的代码(available here),它已经多次保存了我的背。

希望它有所帮助。