我的产品图片的宽度范围很广。固定大小的水印会使一些太小的图像变得愚蠢。
我看到有一个选项可以指定水印将在产品图像上打印的绝对像素的实际宽度,但是有什么方法可以使用百分比而不是绝对值来使用水印?如原始图像宽度的35%然后按比例调整大小。你明白了。
有什么想法吗?
非常感谢!
答案 0 :(得分:1)
现在我可以通过以下方式获取Magento中的width of product images:
$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);?> />
答案 1 :(得分:1)
您能够在图片库上或仅在主图像上使用它吗?
我在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');
?>
我不确定如何让它在图库图像上工作。