如何调整Magento中的分类图像大小? 我使用了以下代码来调整产品图像的大小,但无法用于显示分类图像:
$this->helper('catalog/image')->init($_product, 'small_image')->resize(170);
$this->helper('catalog/image')->init($_product, 'small_image')->resize(170);
init($_product, 'small_image')->resize(100,100);
// single parameter work with 'image'
init($_product, 'image')->resize(100);
// How about this
$this->helper('catalog/image')->init($this->getProduct(), 'thumbnail', $image->getFile())->resize(100,100);
以下是新代码。如果您在使用之前告诉我使用的是哪个扩展名,我们将迅速解决问题。 如果没记错的话,您使用了Template Monster Catalog Image Extension。所以,在扩展中有一个如下的函数。
// app/design/frontend/default/default/template/easycatalogimg/homepage.phtml
<?php echo Mage::helper('easycatalogimg/image')->resize($imageUrl, $width , $height) ?>
<?php
$_file_name = $cat->getThumbnail(); // Here $cat is category data array
$_media_dir = Mage::getBaseDir('media') . DS . 'catalog' . DS . 'category' . DS;
$cache_dir = $_media_dir . 'resize' . DS; // Here i create a resize folder. for upload new category image
if (file_exists($cache_dir . $_file_name)) {
$catImg =Mage::getBaseUrl('media') . 'catalog' . DS . 'category' . DS . 'resize' . 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(false);
$_image->keepFrame(false);
$_image->keepTransparency(true);
$_image->resize(224, 174); // change image height, width
$_image->save($cache_dir . $_file_name);
$catImg = Mage::getBaseUrl('media') . 'catalog' . DS . 'category' . DS . 'resize' . DS . $_file_name;
}
echo $catImg ; // display resize category thumbnail imagename
?>
" />
为了更好的理解,请参考这里
$this->placeHolder = Mage::getDesign()->getSkinUrl('images/catalog/product/placeholder/image.jpg');
,以避免在主题文件夹中没有占位符时出现无限嵌套(通过使用上述代码,Magento 将回退到默认的占位符)。否则,这是一段很棒的代码,感谢分享。 - srgbinit()
调整产品图片的大小是完全可以的,就像问题描述的那样,但你不应该使用同一个函数来调整单个图片的大小,通过一个函数,其中图像本身(第三个参数)是可选值。$model = Mage::getModel('catalog/product_image');
$model->setBaseFile('test.png');
$model->setWidth(100);
$model->resize();
$model->saveFile();
echo $model->getUrl();
// generates the following url: http://example.com/media/catalog/product/cache/1//9df78eab33525d08d6e5fb8d27136e95/test.png
$varienImage = new Varien_Image('test.png');
$varienImage->resize(100);
$varienImage->save('var', 'test2.png');
save()
函数的第一个参数是你想要保存新文件的目录,第二个参数是新文件的名称。
这些步骤与init
函数类似,除了需要处理产品本身的一些逻辑。