5

如何在 Magento 中调整类别图像的大小?我使用以下代码来调整产品图像的大小,但我无法使用它来显示类别图像:

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

5 回答 5

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) ?>
于 2012-01-03T12:16:17.037 回答
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
 ?>

" />

有关更多说明,请参见此处

于 2014-02-08T16:16:43.080 回答
2

如果你想调整类别图像的大小,这里有一个基于核心图像调整大小的免费模块。当我自己如此挣扎时,最终创建了这个扩展来轻松调整类别图像的大小,就像调整产品图像大小一样。

于 2012-12-06T00:25:51.327 回答
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_Imageobject 来实现:

$varienImage = new Varien_Image('test.png');
$varienImage->resize(100);
$varienImage->save('var', 'test2.png');

save()将第一个参数作为您希望保存新文件的目录,第二个参数是新文件的名称。

init除了处理产品本身的一堆逻辑之外,这些步骤与函数的作用类似。

于 2017-05-01T16:02:37.233 回答
0

如果您需要调整类别图像的大小,因为它不断缩小到 475px 宽,您可以通过从以下模板中删除 'width="475"' 来实现:app/design/frontend/default/default/template/catalog/category /view.phtml

您可能还需要在后端关闭或清除缓存:系统 --> 缓存管理 --> 图像缓存 --> 清除。

来自: http: //www.pridedesign.ie/content/magento-resize-category-image

于 2012-01-04T08:18:04.497 回答