如何在 Magento 中调整类别图像的大小?我使用以下代码来调整产品图像的大小,但我无法使用它来显示类别图像:
$this->helper('catalog/image')->init($_product, 'small_image')->resize(170);
如何在 Magento 中调整类别图像的大小?我使用以下代码来调整产品图像的大小,但我无法使用它来显示类别图像:
$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
?>
" />
有关更多说明,请参见此处
如果你想调整类别图像的大小,这里有一个基于核心图像调整大小的免费模块。当我自己如此挣扎时,最终创建了这个扩展来轻松调整类别图像的大小,就像调整产品图像大小一样。
我意识到我参加聚会迟到了,但我最近有机会看到这个,并且使用init()
来调整产品图像的大小非常好,如问题中所述,但您不应该使用相同的功能来调整单个图像的大小,通过一个函数,其中图像本身(第三个参数)是一个可选值。
这是我为调整图像大小所做的,适用于任何图像:
$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
如果您不想将图像保存在media
目录中,则可以使用Varien_Image
object 来实现:
$varienImage = new Varien_Image('test.png');
$varienImage->resize(100);
$varienImage->save('var', 'test2.png');
save()
将第一个参数作为您希望保存新文件的目录,第二个参数是新文件的名称。
init
除了处理产品本身的一堆逻辑之外,这些步骤与函数的作用类似。
如果您需要调整类别图像的大小,因为它不断缩小到 475px 宽,您可以通过从以下模板中删除 'width="475"' 来实现:app/design/frontend/default/default/template/catalog/category /view.phtml
您可能还需要在后端关闭或清除缓存:系统 --> 缓存管理 --> 图像缓存 --> 清除。
来自: http: //www.pridedesign.ie/content/magento-resize-category-image