如果你去this page,你会注意到我在两个不同的地方显示相同版本的图像:一个用于云缩放,一个用于页面中间而不进行缩放。
我目前正在使用2行不同的代码来生成图像,然后返回它的URL,这基本上做同样的事情:
<?php /* for cloud zoom */ echo $this->helper('catalog/image')->init($_product, 'image')->constrainOnly(TRUE)->keepAspectRatio(TRUE)->keepFrame(FALSE)->setWatermarkImageOpacity(0)->resize(600, null);?>
<?php /* for middle page */ echo $this->helper('catalog/image')->init($_product, 'image')->constrainOnly(TRUE)->keepAspectRatio(TRUE)->keepFrame(FALSE)->setWatermarkImageOpacity(0)->resize(600, null);?>
这无疑是一个蹩脚的解决方案,因为:1)它占用更多的磁盘存储空间,因为有2个不同的图像文件基本上是相同的图像; 2)它显着减慢了页面加载速度,因为用户必须下载两个图像。
所以我的问题是如何在Magento的多个地方使用相同版本的图像?有没有办法让resize()方法返回图像的URL?
谢谢!
答案 0 :(得分:0)
Mage_Catalog_Helper_Image
有一个__toString()
方法就是这样做的:
$imageUrl = $this->helper('catalog/image')->init($_product, 'image')->__toString();
HTH