Изменение размера водяного знака Magento в процентах от изображения продукта? - PullRequest
0 голосов
/ 14 февраля 2012

Изображения моего продукта различаются по ширине в широком диапазоне. Водяной знак фиксированного размера может сделать его глупым на некоторых слишком маленьких изображениях.

Я вижу, что есть возможность указать фактическую ширину в абсолютных пикселях, водяной знак будет напечатан на изображениях продуктов, но есть ли способ использовать процентное значение, а не абсолютные значения для используемого водяного знака? Например, 35% ширины исходного изображения, а затем пропорционально изменить размер. Вы поняли идею.

Есть идеи?

Большое спасибо!

Ответы [ 2 ]

1 голос
/ 13 марта 2012

Удалось ли вам заставить это работать с галереей изображений или только с основным изображением?

Я использовал следующее в media.phtml для изменения размера водяного знака:

   <?php
        $_originalWidth = $this->helper('catalog/image')->init($_product, 'image')->getOriginalWidth();
        function iGetWatermarkSize($_originalWidth) {
    //Change the width value percentage to be what percent you want the watermark to be of the image - I want it to not display or display very small so I used .05, otherwise I would have used .9
    $_watermarkSizeWidth = .05 * $_originalWidth;
    $_watermarkSizeHeight = $_watermarkSizeWidth * 54 / 574;
    $_watermarkSize = $_watermarkSizeWidth.'x'.$_watermarkSizeHeight;
    return $_watermarkSize;
}
$_watermarkSize = iGetWatermarkSize($_originalWidth);
        $_img = '<img id="image" src="'.$this->helper('catalog/image')->init($_product, 'image')->setWatermarkSize($_watermarkSize).'" alt="'.$this->htmlEscape($this->getImageLabel()).'" title="'.$this->htmlEscape($this->getImageLabel()).'" />';
        echo $_helper->productAttribute($_product, $_img, 'image');


    ?>

Я не уверен, как заставить его работать с изображением галереи.

1 голос
/ 15 февраля 2012

Теперь я могу получить ширину изображений продуктов в Magento:

$this->helper('catalog/image')->init($_product, 'image')->getOriginalWidth()

Я могу рассчитать ширину водяного знака на лету:

$watermarkWidth = $this->helper('catalog/image')->init($_product, 'image')->getOriginalWidth() * .5; // watermark width will be 50% of the original image width

А затем рассчитайте $ watermarkHeight, высоту водяного знака пропорционально.

С помощью метода setWatermarkSize () я теперь могу установить водяной знак в процентах от исходного изображения:

<img src="<?php echo $this->helper('catalog/image')->init($_product, 'image')->setWatermarkSize($watermarkWidth.'x'.$watermarkHeight);?> />
...