php – 在Magento中调整URL的图像大小

前端之家收集整理的这篇文章主要介绍了php – 在Magento中调整URL的图像大小前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在为自定义类别视图中的每个图像检索一个网址:

像这样:

foreach ($collection as $cat){
    $cur_category = Mage::getModel('catalog/category')->load($cat->getId());
    $_img = $cur_category->getImageUrl();
    //stuff 
}

这给了我原始图像,我想使用Magento的内置调整大小功能调整大小.但我是一个新手,并且无法弄清楚如何使代码像产品列表页面上的代码一样工作:

$this->helper('catalog/image')->init($_product,'small_image')->resize(306);

如何修改/使用原始代码以使其调整图像大小?谢谢!

没有用于调整类别图像大小的内置功能.但是,您可以使用Varien_Image类.在这里,我写了一段你需要的代码
foreach ($collection as $_category){
    $_file_name = $_category->getImage();
    $_media_dir = Mage::getBaseDir('media') . DS . 'catalog' . DS . 'category' . DS;
    $cache_dir = $_media_dir . 'cache' . DS;
    if (file_exists($cache_dir . $_file_name)) {
        echo Mage::getBaseUrl('media') . DS . 'catalog' . DS . 'category' . DS . 'cache' . DS . $_file_name;
    } elseif (file_exists($_media_dir . $_file_name)) {
        if (!is_dir($cache_dir)) {
            mkdir($cache_dir);
        }

        $_image = new Varien_Image($_media_dir . $_file_name);
        $_image->constrainOnly(true);
        $_image->keepAspectRatio(true);
        $_image->keepFrame(true);
        $_image->keepTransparency(true);
        $_image->resize(50,50);
        $_image->save($cache_dir . $_file_name);

        echo Mage::getBaseUrl('media') . DS . 'catalog' . DS . 'category' . DS . 'cache' . DS . $_file_name;
    }
}

猜你在找的PHP相关文章