如何在Magento中调整类别图像的大小?我使用以下代码来调整产品图像的大小,但我无法使用它来显示类别图像:
$this->helper('catalog/image')->init($_product, 'small_image')->resize(170);
答案 0 :(得分:5)
如果我没有记错,那应该是:
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) ?>
答案 1 :(得分:3)
<?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
?>
“/&gt;
有关详细说明see here
答案 2 :(得分:2)
如果要调整类别图像的大小,here是基于核心图像大小调整的免费模块。因为我一直在努力,所以最终创建了这个扩展来调整类别图像的大小,与产品图像大小调整一样容易。
答案 3 :(得分:1)
我意识到我迟到了,但我最近有机会看到这一点并使用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
对象来实现:
$varienImage = new Varien_Image('test.png');
$varienImage->resize(100);
$varienImage->save('var', 'test2.png');
save()
将第一个参数作为您要保存新文件的目录,第二个参数是新文件的名称。
除了处理产品本身的一堆逻辑外,步骤与init
函数的作用类似。
答案 4 :(得分:0)
如果您需要调整类别图像的大小,因为它会缩小到475px宽,您可以通过删除以下模板中的'width =“475”来实现: 应用程序/设计/前端/默认/默认/模板/目录/类别/ view.phtml
您可能还需要在后端关闭或清除缓存:系统 - &gt;缓存管理 - &gt;图像缓存 - &gt;清除。
来自:http://www.pridedesign.ie/content/magento-resize-category-image