0

如果你去这个页面,你会注意到我在两个不同的地方显示相同版本的图像:一个用于云缩放,一个在页面中间没有缩放。

我目前正在使用 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?

谢谢!

4

1 回答 1

0

Mage_Catalog_Helper_Image有一个__toString()方法可以做到这一点:

$imageUrl = $this->helper('catalog/image')->init($_product, 'image')->__toString();

高温高压

于 2012-08-02T15:37:28.350 回答